/**
 * @typedef {import('./session').HttpWTSession} HttpWTSession
 * @typedef {import('./types').HttpClientInit} HttpClientInit
 *
 * Http3Client events
 * @typedef {import('./types').HttpClientEventHandler} HttpClientEventHandler
 * @typedef {import('./types').ClientConnectedEvent} ClientConnectedEvent
 * @typedef {import('./types').ClientWebtransportSupportEvent} ClientWebtransportSupportEvent
 * @typedef {import('./types').HttpWTSessionVisitorEvent} HttpWTSessionVisitorEvent
 */
/**
 * @implements {HttpClientEventHandler}
 */
export class HttpClient implements HttpClientEventHandler {
    /**
     * @param {HttpClientInit} args
     */
    constructor(args: HttpClientInit);
    /** @type {HttpClientInit| undefined} */
    args: HttpClientInit | undefined;
    /** @type {{ resolve: (value?: any) => void, reject: (err?: Error) => void} | null | undefined} */
    sessionProm: {
        resolve: (value?: any) => void;
        reject: (err?: Error) => void;
    } | null | undefined;
    /** @type {Promise<void> | undefined} */
    sessionobj: Promise<void> | undefined;
    /** @type {HttpWTSession | null | undefined} */
    sessionobjint: HttpWTSession | null | undefined;
    closeHookSession(): void;
    /** @type {{ resolve: (value?: any) => void, reject: (err?: Error) => void} | null | undefined} */
    webtransportProm: {
        resolve: (value?: any) => void;
        reject: (err?: Error) => void;
    } | null | undefined;
    /** @type {{ resolve: (value?: any) => void, reject: (err?: Error) => void} | null | undefined} */
    quicconnectedProm: {
        resolve: (value?: any) => void;
        reject: (err?: Error) => void;
    } | null | undefined;
    _quicConnectTimeout: number;
    _webTransportConnectTimeout: number;
    /**
     * @param {Object} args
     * @param {boolean} args.createTransport
     * @param {string} args.path
     */
    handleConnection({ createTransport, path }: {
        createTransport: boolean;
        path: string;
    }): Promise<void>;
    quicconnected: Promise<any> | undefined;
    webtransport: Promise<any> | undefined;
    /**
     * @param {HttpWTSession} sessionobj
     * @param {string} path
     * @returns
     */
    createWTSession(sessionobj: HttpWTSession, path: string): Promise<void | undefined>;
    stopped: boolean | undefined;
    /**
     * @param {import('./types').SessionCloseEvent} args
     */
    onClientError(args: import('./types').SessionCloseEvent): void;
    /**
     * @param {ClientConnectedEvent} args
     */
    onClientConnected(args: ClientConnectedEvent): void;
    transportIntSwitchToReliable: any;
    /**
     * @param {ClientWebtransportSupportEvent} args
     */
    onClientWebTransportSupport(args: ClientWebtransportSupportEvent): void;
    /**
     * @param {HttpWTSessionVisitorEvent} args
     */
    onHttpWTSessionVisitor(args: HttpWTSessionVisitorEvent): void;
    /**
     * @param{{path: string}} [args]
     **/
    createTransportInt(args?: {
        path: string;
    } | undefined): void;
    transportInt: any;
}
export type HttpWTSession = import('./session').HttpWTSession;
/**
 * Http3Client events
 */
export type HttpClientInit = import('./types').HttpClientInit;
export type HttpClientEventHandler = import('./types').HttpClientEventHandler;
export type ClientConnectedEvent = import('./types').ClientConnectedEvent;
export type ClientWebtransportSupportEvent = import('./types').ClientWebtransportSupportEvent;
export type HttpWTSessionVisitorEvent = import('./types').HttpWTSessionVisitorEvent;
//# sourceMappingURL=client.d.ts.map