@aptpod/iscp-ts
Version:
iSCP 2.0 client library for TypeScript
52 lines (51 loc) • 1.81 kB
TypeScript
import { ReadableStream, WritableStream } from 'web-streams-polyfill';
type WebTransportOptions = {
allowPooling: boolean;
serverCertificateHashes: any;
};
type WebTransportStats = {
timestamp: number;
bytesSent: number;
packetsSent: number;
packetsLost: number;
numOutgoingStreamsCreated: number;
numIncomingStreamsCreated: number;
bytesReceived: number;
packetsReceived: number;
smoothedRtt: number;
rttVariation: number;
minRtt: number;
numReceivedDatagramsDropped: number;
};
type WebTransportCloseInfo = {
closeCode: number;
reason: string;
};
type WebTransportDatagramDuplexStream = {
get readable(): ReadableStream;
get writable(): WritableStream;
get maxDatagramSize(): number;
incomingMaxAge(): number | undefined;
outgoingMaxAge(): number | undefined;
incomingHighWaterMark(): number;
outgoingHighWaterMark(): number;
};
type WebTransportBidirectionalStream = {
get readable(): ReadableStream;
get writable(): WritableStream;
};
declare class WebTransport {
constructor(url: string, options?: WebTransportOptions);
getStats(): Promise<WebTransportStats>;
get ready(): Promise<void>;
get closed(): Promise<WebTransportCloseInfo>;
close(closeInfo?: WebTransportCloseInfo): void;
get datagrams(): WebTransportDatagramDuplexStream;
createBidirectionalStream(): Promise<WebTransportBidirectionalStream>;
/** a ReadableStream of WebTransportBidirectionalStream objects */
get incomingBidirectionalStreams(): ReadableStream;
createUnidirectionalStream(): Promise<WritableStream>;
get incomingUnidirectionalStreams(): ReadableStream;
}
export declare const createWebTransport: (url: string, options?: WebTransportOptions | undefined) => WebTransport;
export {};