/// <reference types="node" />
/**
 * @implements {HttpServerEventHandler}
 */
export class HttpServer implements HttpServerEventHandler {
    /**
     *
     * @param {HttpServerInit} args
     */
    constructor(args: HttpServerInit);
    args: import("./types").HttpServerInit;
    /** @type {Record<string, ReadableStream>} */
    sessionStreams: Record<string, ReadableStream>;
    /** @type {Record<string, ReadableStreamDefaultController<HttpWTSession>>} */
    sessionController: Record<string, ReadableStreamDefaultController<HttpWTSession>>;
    port: number | null;
    host: string | null;
    defaultDatagramsReadableMode_: "bytes";
    /** @type {any} */
    requestHandler: any;
    _ready: import("./types").Deferred<unknown>;
    ready: Promise<unknown>;
    _closed: import("./types").Deferred<unknown>;
    closed: Promise<unknown>;
    /**
     * @type {string[]}
     */
    _pendingPaths: string[];
    /**
     * @type {undefined|boolean}
     */
    _pendingRequestCallback: undefined | boolean;
    startServer(): void;
    stopServer(): void;
    stopped: boolean | undefined;
    /**
     * @param {string} cert
     * @param {string} privKey
     * @param {boolean} http2only
     * */
    updateCert(cert: string, privKey: string, http2only: boolean): void;
    /**
     * @returns {{ port: number, host: string, family: 'IPv4' | 'IPv6' } | null}
     */
    address(): {
        port: number;
        host: string;
        family: 'IPv4' | 'IPv6';
    } | null;
    /**
     * @param {any} callback
     */
    setRequestCallback(callback: any): void;
    /**
     * @param {string} path
     * @param {object} [args]
     * @param {boolean} [args.noAutoPaths]
     * @returns {ReadableStream<WebTransportSession>}
     */
    sessionStream(path: string, args?: {
        noAutoPaths?: boolean | undefined;
    } | undefined): ReadableStream<WebTransportSession>;
    /**
     * @param {ServerSessionRequestEvent} args
     */
    onSessionRequest(args: ServerSessionRequestEvent): void;
    /**
     * @param {HttpWTServerSessionVisitorEvent} args
     */
    onHttpWTSessionVisitor(args: HttpWTServerSessionVisitorEvent): void;
    /**
     * @param {Error} [error]
     */
    onServerError(error?: Error | undefined): void;
    /**
     * @param {HttpServerListeningEvent} evt
     */
    onServerListening(evt: HttpServerListeningEvent): void;
    /**
     */
    onServerClose(): void;
    /**
     * @param{{path: string} |undefined} [args]
     **/
    createTransportInt(args?: {
        path: string;
    } | undefined): Promise<void>;
    transportInt: any;
}
export class Http3Server extends HttpServer {
}
export class Http2Server extends HttpServer {
}
export type WebTransportSession = import('./types').WebTransportSessionImpl;
export type NativeHttpWTSession = import('./types').NativeHttpWTSession;
export type HttpServerEventHandler = import('./types').HttpServerEventHandler;
export type HttpWTServerSessionVisitorEvent = import('./types').HttpWTServerSessionVisitorEvent;
export type HttpServerListeningEvent = import('./types').HttpServerListeningEvent;
export type ServerSessionRequestEvent = import('./types').ServerSessionRequestEvent;
export type HttpServerInit = import('./types').HttpServerInit;
import { ReadableStream } from "stream/web";
import { HttpWTSession } from "./session.js";
//# sourceMappingURL=server.d.ts.map