@fails-components/webtransport
Version:
A component to add webtransport support (server and client) to node.js using libquiche
103 lines • 3.38 kB
TypeScript
/// <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