@fails-components/webtransport
Version:
A component to add webtransport support (server and client) to node.js using libquiche
150 lines • 4.63 kB
TypeScript
/**
* @param{Number|bigint} int
* @returns {Number}
*/
export function lengthVarInt(int: number | bigint): number;
export class ParserBase {
static PADDING: number;
static WT_RESET_STREAM: number;
static WT_STOP_SENDING: number;
static WT_STREAM_WOFIN: number;
static WT_STREAM_WFIN: number;
static WT_MAX_DATA: number;
static WT_MAX_STREAM_DATA: number;
static WT_MAX_STREAMS_BIDI: number;
static WT_MAX_STREAMS_UNIDI: number;
static WT_DATA_BLOCKED: number;
static WT_STREAM_DATA_BLOCKED: number;
static WT_STREAMS_BLOCKED_UNIDI: number;
static WT_STREAMS_BLOCKED_BIDI: number;
static WT_CLOSE_SESSION: number;
static WT_DRAIN_SESSION: number;
static DATAGRAM: number;
/**
* @param {import('../types').ParserInit} arg
*/
constructor({ nativesession, isclient, initialStreamSendWindowOffsetBidi, initialStreamSendWindowOffsetUnidi, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../types').ParserInit);
session: any;
isclient: boolean;
/** @type {boolean} */
blocked: boolean;
initialStreamSendWindowOffsetUnidi: number;
initialStreamSendWindowOffsetBidi: number;
initialStreamReceiveWindowOffset: number;
streamShouldAutoTuneReceiveWindow: boolean;
streamReceiveWindowSizeLimit: number;
/** @type {Map<bigint,Http2WebTransportStream>} */
wtstreams: Map<bigint, Http2WebTransportStream>;
scheduler: PriorityScheduler;
/**
* @abstract
* @param {Buffer|Uint8Array} data
*/
parseData(data: Buffer | Uint8Array): void;
/**
* @abstract
* @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined, end?: () => void}} bs
*/
writeCapsule({ type, headerVints, payload, end }: {
type: number;
headerVints: Array<number | bigint>;
payload: Uint8Array | undefined;
end?: () => void;
}): void;
/**
* @abstract
* @return{boolean}
*/
initialParametersMandatory(): boolean;
/**
* @param{{code: Number, reason: string}}arg
*/
sendClose({ code, reason }: {
code: number;
reason: string;
}): void;
/**
* @param {bigint} streamid
* @param {{sendOrder: bigint,sendGroupId: bigint}} priority
*/
newStream(streamid: bigint, priority: {
sendOrder: bigint;
sendGroupId: bigint;
}): Http2WebTransportStream | undefined;
scheduleDrainWrites(): void;
_scheduledDrainWriteCall: Promise<void> | undefined;
drainWrites(): void;
/**
* @param {bigint|undefined} val
*/
onMaxData(val: bigint | undefined): void;
/**
* @param {bigint} streamid
* @param {bigint} offset
*/
onMaxStreamData(streamid: bigint, offset: bigint): void;
/**
* @param {bigint|undefined} maxOpenStreams
*/
onMaxStreamUniDi(maxOpenStreams: bigint | undefined): void;
/**
* @param {bigint|undefined} maxOpenStreams
*/
onMaxStreamBiDi(maxOpenStreams: bigint | undefined): void;
/**
* @param {bigint|undefined} val
*/
onDataBlocked(val: bigint | undefined): void;
/**
* @param {bigint} streamid
* @param {bigint} offset
*/
onStreamDataBlocked(streamid: bigint, offset: bigint): void;
/**
* @param {bigint|undefined} maxstreams
*/
onStreamsBlockedBidi(maxstreams: bigint | undefined): void;
/**
* @param {bigint|undefined} maxstreams
*/
onStreamsBlockedUnidi(maxstreams: bigint | undefined): void;
/**
* @param {{code: number, reason: string}} opts
*/
onCloseWebTransportSession({ code, reason }: {
code: number;
reason: string;
}): void;
onDrain(): void;
/**
*
* @param {bigint} streamid
*/
shouldYieldStream(streamid: bigint): boolean;
/**
*
* @param {bigint} streamid
*/
scheduleDrainWriteStream(streamid: bigint): void;
/**
*
* @param {bigint} streamid
*/
removeStream(streamid: bigint): void;
/**
*
* @param {bigint} streamid
* @param {{sendOrder: bigint, sendGroupId: bigint}} arg2
*/
streamUpdateSendOrderAndGroup(streamid: bigint, { sendOrder, sendGroupId }: {
sendOrder: bigint;
sendGroupId: bigint;
}): void;
/**
* @param {number} code
*/
closeHttp2Stream(code: number): void;
}
import { Http2WebTransportStream } from "./stream.js";
import { PriorityScheduler } from "./priorityscheduler.js";
//# sourceMappingURL=parserbase.d.ts.map