import * as plugins from '../../plugins.js';
export interface IChallengeProviderRelayServerOptions {
    providerTimeoutMs?: number;
    maxActiveProviderOperations?: number;
    maxUnsettledProviderOperations?: number;
}
export declare class ChallengeProviderRelayServer {
    private providers;
    private providerTimeoutMs;
    private maxActiveProviderOperations;
    private maxUnsettledProviderOperations;
    private activeProviderOperations;
    private unsettledProviderOperations;
    private server;
    private socketPath;
    private activeSockets;
    private startPromise?;
    constructor(providers: Map<string, plugins.smartchallenge.IChallengeProvider>, optionsArg?: IChallengeProviderRelayServerOptions);
    getSocketPath(): string;
    start(): Promise<void>;
    private startInternal;
    stop(): Promise<void>;
    private handleConnection;
    private dispatchLine;
    private withProviderTimeout;
    private writeResponse;
    private createErrorResponse;
    private estimateJsonByteLength;
    private estimateJsonByteLengthInternal;
    private estimateJsonStringByteLength;
}
