@fails-components/webtransport
Version:
A component to add webtransport support (server and client) to node.js using libquiche
83 lines • 3.85 kB
TypeScript
/** @type {WeakMap<WebTransportBase, import('./session.js').HttpWTSession>} */
/**
* @typedef {import('./dom.js').WebTransportCloseInfo} WebTransportCloseInfo
* @typedef {import('./dom.js').WebTransportBidirectionalStream} WebTransportBidirectionalStream
* @typedef {import('./dom.js').WebTransportReceiveStream} WebTransportReceiveStream
* @typedef {import('./dom.js').WebTransportSendStream} WebTransportSendStream
* @typedef {import('./dom.js').WebTransportSendStreamOptions} WebTransportSendStreamOptions
* @typedef {import('./session.js').HttpWTSession} HttpWTSession
* @typedef { import('./session.js').HttpClient} HttpClient
*/
/**
* @template T
* @typedef {import('node:stream/web').ReadableStream<T>} ReadableStream<T>
*/
/**
* @typedef {import('./dom.js').WebTransport} WebTransportInterface
*
* @implements {WebTransportInterface}
*/
export class WebTransportBase implements WebTransportInterface {
/**
* @param {string} url
* @param {import('./dom.js').WebTransportOptions} [args]
*/
constructor(url: string, args?: import("./dom.js").WebTransportOptions | undefined);
ready: Promise<void>;
closed: Promise<import("./dom.js").WebTransportCloseInfo>;
draining: Promise<undefined>;
datagrams: import("./dom.js").WebTransportDatagramDuplexStream;
incomingBidirectionalStreams: globalThis.ReadableStream<import("./dom.js").WebTransportBidirectionalStream>;
incomingUnidirectionalStreams: globalThis.ReadableStream<import("./dom.js").WebTransportReceiveStream>;
sessionint: import("./session.js").HttpWTSession;
/**
* @param{import('./types.js').HttpWebTransportInit} args
* @return {{sessionint: HttpWTSession, client: HttpClient}}
* @abstract
*/
createClient(args: import('./types.js').HttpWebTransportInit): {
sessionint: HttpWTSession;
client: HttpClient;
};
/**
* @param{{client: HttpClient, sessionint: HttpWTSession, ourl: URL}} args
* @abstract
*/
startUpConnection({ client, sessionint, ourl }: {
client: HttpClient;
sessionint: HttpWTSession;
ourl: URL;
}): void;
get reliability(): import("./dom.js").WebTransportReliabilityMode;
get congestionControl(): import("./dom.js").WebTransportCongestionControl;
get supportsReliableOnly(): boolean;
getStats(): Promise<any>;
/**
* @param {WebTransportCloseInfo} [closeinfo]
*/
close(closeinfo?: import("./dom.js").WebTransportCloseInfo | undefined): void;
/**
* @param {WebTransportSendStreamOptions} [opts]
* @returns {Promise<WebTransportBidirectionalStream>}
*/
createBidirectionalStream(opts?: import("./dom.js").WebTransportSendStreamOptions | undefined): Promise<WebTransportBidirectionalStream>;
/**
* @param {WebTransportSendStreamOptions} [opts]
* @returns {Promise<WebTransportSendStream>}
*/
createUnidirectionalStream(opts?: import("./dom.js").WebTransportSendStreamOptions | undefined): Promise<WebTransportSendStream>;
get protocol(): string | undefined;
}
export type WebTransportCloseInfo = import('./dom.js').WebTransportCloseInfo;
export type WebTransportBidirectionalStream = import('./dom.js').WebTransportBidirectionalStream;
export type WebTransportReceiveStream = import('./dom.js').WebTransportReceiveStream;
export type WebTransportSendStream = import('./dom.js').WebTransportSendStream;
export type WebTransportSendStreamOptions = import('./dom.js').WebTransportSendStreamOptions;
export type HttpWTSession = import('./session.js').HttpWTSession;
export type HttpClient = import('./session.js').HttpClient;
/**
* <T>
*/
export type ReadableStream<T> = import('node:stream/web').ReadableStream<T>;
export type WebTransportInterface = import('./dom.js').WebTransport;
//# sourceMappingURL=webtransportbase.d.ts.map