@fails-components/webtransport
Version:
A component to add webtransport support (server and client) to node.js using libquiche
145 lines • 4.93 kB
TypeScript
/// <reference types="node" />
/**
* WebTransport stream events
* @typedef {import('./types').WebTransportStreamEventHandler} WebTransportStreamEventHandler
* @typedef {import('./types').StreamRecvSignalEvent} StreamRecvSignalEvent
* @typedef {import('./types').StreamReadEvent} StreamReadEvent
* @typedef {import('./types').StreamWriteEvent} StreamWriteEvent
* @typedef {import('./types').StreamNetworkFinishEvent} StreamNetworkFinishEvent
*
* @typedef {import('./types').NativeHttpWTStream} NativeHttpWTStream
* @typedef {import('./types').ReadBuffer} ReadBuffer
*
* @typedef {import('./dom').WebTransportReceiveStream} WebTransportReceiveStream
* @typedef {import('./dom').WebTransportSendStream} WebTransportSendStream
*
* @typedef {import('./dom').WebTransportSendGroup} WebTransportSendGroup
*
* @typedef {import('./session').HttpWTSession} HttpWTSession
*
* @typedef {import('stream/web').WritableStreamDefaultController} WritableStreamDefaultController
*/
export class HttpWTStream {
/**
* @param {object} args
* @param {NativeHttpWTStream} args.object
* @param {HttpWTSession} args.parentobj
* @param {object} args.transport
* @param {boolean} args.bidirectional
* @param {boolean} args.incoming
* @param {WebTransportSendGroup|undefined} args.sendGroup
* @param {bigint} args.sendOrder
*/
constructor(args: {
object: NativeHttpWTStream;
parentobj: HttpWTSession;
transport: object;
bidirectional: boolean;
incoming: boolean;
sendGroup: WebTransportSendGroup | undefined;
sendOrder: bigint;
});
objint: import("./types").NativeHttpWTStream;
parentobj: import("./session").HttpWTSession;
transport: object;
bidirectional: boolean;
incoming: boolean;
closed: boolean;
_sendGroup: import("./dom").WebTransportSendGroup | undefined;
_sendOrder: bigint;
/** @type {Promise<void> | null} */
pendingoperation: Promise<void> | null;
pendingres: (() => void) | null;
/** @type {WebTransportReceiveStream} */
readable: WebTransportReceiveStream;
/** @type {WebTransportSendStream} */
writable: WebTransportSendStream;
/** @type {Promise<void> | null} */
pendingoperationRead: Promise<void> | null;
pendingresRead: ((value: void | PromiseLike<void>) => void) | null;
readableController: import("stream/web").ReadableByteStreamController;
cancelres: (() => void) | null;
readableclosed: boolean;
writableController: import("stream/web").WritableStreamDefaultController;
abortres: (() => void) | null;
finaldrain_: boolean;
/**
* @param {{byteSize: number}} args
* @returns {ReadBuffer}
*/
getReadBuffer({ byteSize }: {
byteSize: number;
}): ReadBuffer;
/**
* @param {ReadBuffer} args
*/
commitReadBuffer({ buffer, byob, drained, readBytes, fin }: ReadBuffer): {
stopReading: boolean;
};
updateSendOrderAndGroup(): void;
/**
* @param {import('./types').StreamRecvSignalEvent} args
* @returns {void}
*/
onStreamRecvSignal(args: import('./types').StreamRecvSignalEvent): void;
writableclosed: boolean | undefined;
finalDrain(): void;
/**
* @param {StreamWriteEvent} args
*/
onStreamWrite(args: StreamWriteEvent): void;
/**
* @param {StreamNetworkFinishEvent} args
*/
onStreamNetworkFinish(args: StreamNetworkFinishEvent): void;
stopSendingRecv: boolean | undefined;
}
/**
* WebTransport stream events
*/
export type WebTransportStreamEventHandler = import('./types').WebTransportStreamEventHandler;
/**
* WebTransport stream events
*/
export type StreamRecvSignalEvent = import('./types').StreamRecvSignalEvent;
/**
* WebTransport stream events
*/
export type StreamReadEvent = import('./types').StreamReadEvent;
/**
* WebTransport stream events
*/
export type StreamWriteEvent = import('./types').StreamWriteEvent;
/**
* WebTransport stream events
*/
export type StreamNetworkFinishEvent = import('./types').StreamNetworkFinishEvent;
/**
* WebTransport stream events
*/
export type NativeHttpWTStream = import('./types').NativeHttpWTStream;
/**
* WebTransport stream events
*/
export type ReadBuffer = import('./types').ReadBuffer;
/**
* WebTransport stream events
*/
export type WebTransportReceiveStream = import('./dom').WebTransportReceiveStream;
/**
* WebTransport stream events
*/
export type WebTransportSendStream = import('./dom').WebTransportSendStream;
/**
* WebTransport stream events
*/
export type WebTransportSendGroup = import('./dom').WebTransportSendGroup;
/**
* WebTransport stream events
*/
export type HttpWTSession = import('./session').HttpWTSession;
/**
* WebTransport stream events
*/
export type WritableStreamDefaultController = import('stream/web').WritableStreamDefaultController;
//# sourceMappingURL=stream.d.ts.map