import { T } from '..';
import { Effects } from '../../../base/lib/Effects';
export declare class GetSslCertificate {
    readonly effects: Effects;
    readonly hostnames: string[];
    readonly algorithm?: T.Algorithm | undefined;
    constructor(effects: Effects, hostnames: string[], algorithm?: T.Algorithm | undefined);
    /**
     * Returns the an SSL Certificate for the given hostnames if permitted. Restarts the service if it changes
     */
    const(): Promise<[string, string, string]>;
    /**
     * Returns the an SSL Certificate for the given hostnames if permitted. Does nothing if it changes
     */
    once(): Promise<[string, string, string]>;
    private watchGen;
    /**
     * Watches the SSL Certificate for the given hostnames if permitted. Returns an async iterator that yields whenever the value changes
     */
    watch(abort?: AbortSignal): AsyncGenerator<[string, string, string], never, unknown>;
    /**
     * Watches the SSL Certificate for the given hostnames if permitted. Takes a custom callback function to run whenever it changes
     */
    onChange(callback: (value: [string, string, string] | null, error?: Error) => {
        cancel: boolean;
    } | Promise<{
        cancel: boolean;
    }>): void;
    /**
     * Watches the SSL Certificate for the given hostnames if permitted. Returns when the predicate is true
     */
    waitFor(pred: (value: [string, string, string] | null) => boolean): Promise<[string, string, string] | null>;
}
