import { ProxyConnectMode } from '../../configuration';
import { IncomingMessage } from 'http';
import { IProxyConnectAPI } from './model';
import { Socket } from 'net';
import { Connection } from '../request';
import { Http2ServerRequest, ServerHttp2Stream } from 'http2';
export declare class ProxyConnectAPI implements IProxyConnectAPI {
    readonly request: IncomingMessage | Http2ServerRequest;
    mode: ProxyConnectMode;
    private _intercept;
    connectionsStack: readonly Readonly<Connection>[];
    readonly hostname: string;
    readonly port: number;
    destinationHostname: string;
    destinationPort: number;
    private _processed;
    constructor(request: IncomingMessage | Http2ServerRequest, mode: ProxyConnectMode, _intercept: (socket: Socket | ServerHttp2Stream) => void);
    get socket(): Socket | ServerHttp2Stream;
    get connection(): Readonly<Connection>;
    setDestination(hostname: string, port: number): void;
    setMode(mode: ProxyConnectMode): void;
    process(): void;
}
