export interface TunnelServerOptions {
    tunnelPort?: number;
    proxyPort?: number;
    idleTimeout?: number;
    reconnectGrace?: number;
    tls?: {
        cert: string;
        key: string;
        ca?: string[];
    };
}
declare class TunnelServer {
    private tunnels;
    private pendingRequests;
    private options;
    private server?;
    private proxyServer?;
    private monitorInterval?;
    private generateCertificates;
    constructor(options?: TunnelServerOptions);
    start(): void;
    stop(): void;
    private monitorTunnels;
    private handleRequest;
    private handleWebSocketOpen;
    private handleWebSocketMessage;
    private handleWebSocketClose;
    private cleanupTunnel;
    private cleanupWebSocket;
    private generateSubdomain;
    private headersToObject;
}
export default TunnelServer;
