export interface HdoSessionLike {
    setProxy(config: {
        mode?: string;
        proxyRules?: string;
        proxyBypassRules?: string;
        pacScript?: string;
    }): Promise<void>;
    forceReloadProxyConfig?(): Promise<void>;
}
export interface HdoDomainBinding {
    domain: string;
    targetHost: string;
    targetPort?: number | null;
    protocol?: string | null;
}
export declare class HdoSessionDomainProxy {
    private readonly session;
    private readonly log?;
    private server;
    private port;
    private bindings;
    private applied;
    constructor(session: HdoSessionLike, log?: {
        warn(msg: string, meta?: Record<string, unknown>): void;
    } | undefined);
    apply(bindings: HdoDomainBinding[]): Promise<Record<string, unknown>>;
    prepare(bindings: HdoDomainBinding[]): Promise<Record<string, unknown>>;
    disable(): Promise<void>;
    close(): Promise<void>;
    private ensureServer;
    private handleClient;
    private forward;
    private respondToPacRequest;
    private findBinding;
}
