UNPKG

nerdbank-streams

Version:
89 lines (88 loc) 4.46 kB
import { OfferParameters } from './OfferParameters'; import { AcceptanceParameters } from './AcceptanceParameters'; import CancellationToken from 'cancellationtoken'; import { FrameHeader } from './FrameHeader'; import { ControlCode } from './ControlCode'; export interface Version { major: number; minor: number; } export interface HandshakeResult { isOdd?: boolean; protocolVersion: Version; } export declare abstract class MultiplexingStreamFormatter { isOdd?: boolean; abstract writeHandshakeAsync(): Promise<Buffer | null>; abstract readHandshakeAsync(writeHandshakeResult: Buffer | null, cancellationToken: CancellationToken): Promise<HandshakeResult>; abstract writeFrameAsync(header: FrameHeader, payload?: Buffer): Promise<void>; abstract readFrameAsync(cancellationToken: CancellationToken): Promise<{ header: FrameHeader; payload: Buffer; } | null>; abstract serializeOfferParameters(offer: OfferParameters): Buffer; abstract deserializeOfferParameters(payload: Buffer): OfferParameters; abstract serializeAcceptanceParameters(acceptance: AcceptanceParameters): Buffer; abstract deserializeAcceptanceParameters(payload: Buffer): AcceptanceParameters; abstract serializeContentProcessed(bytesProcessed: number): Buffer; abstract deserializeContentProcessed(payload: Buffer): number; abstract end(): void; protected static getIsOddRandomData(): Buffer; protected static isOdd(localRandom: Buffer, remoteRandom: Buffer): boolean; protected createFrameHeader(code: ControlCode, id: number | undefined): FrameHeader; } export declare class MultiplexingStreamV1Formatter extends MultiplexingStreamFormatter { private readonly stream; /** * The magic number to send at the start of communication when using v1 of the protocol. */ private static readonly protocolMagicNumber; constructor(stream: NodeJS.ReadWriteStream); end(): void; writeHandshakeAsync(): Promise<Buffer>; readHandshakeAsync(writeHandshakeResult: Buffer, cancellationToken: CancellationToken): Promise<HandshakeResult>; writeFrameAsync(header: FrameHeader, payload?: Buffer): Promise<void>; readFrameAsync(cancellationToken: CancellationToken): Promise<{ header: FrameHeader; payload: Buffer; } | null>; serializeOfferParameters(offer: OfferParameters): Buffer; deserializeOfferParameters(payload: Buffer): OfferParameters; serializeAcceptanceParameters(_: AcceptanceParameters): Buffer; deserializeAcceptanceParameters(_: Buffer): AcceptanceParameters; serializeContentProcessed(bytesProcessed: number): Buffer; deserializeContentProcessed(payload: Buffer): number; } export declare class MultiplexingStreamV2Formatter extends MultiplexingStreamFormatter { private static readonly protocolVersion; private readonly reader; protected readonly writer: NodeJS.WritableStream; constructor(stream: NodeJS.ReadWriteStream); end(): void; writeHandshakeAsync(): Promise<Buffer | null>; readHandshakeAsync(writeHandshakeResult: Buffer | null, cancellationToken: CancellationToken): Promise<HandshakeResult>; writeFrameAsync(header: FrameHeader, payload?: Buffer): Promise<void>; readFrameAsync(cancellationToken: CancellationToken): Promise<{ header: FrameHeader; payload: Buffer; } | null>; serializeOfferParameters(offer: OfferParameters): Buffer; deserializeOfferParameters(payload: Buffer): OfferParameters; serializeAcceptanceParameters(acceptance: AcceptanceParameters): Buffer; deserializeAcceptanceParameters(payload: Buffer): AcceptanceParameters; serializeContentProcessed(bytesProcessed: number): Buffer; deserializeContentProcessed(payload: Buffer): number; serializeException(error: Error | null): Buffer; deserializeException(payload: Buffer): Error | null; protected readMessagePackAsync(cancellationToken: CancellationToken): Promise<{} | [] | null>; } export declare class MultiplexingStreamV3Formatter extends MultiplexingStreamV2Formatter { private static readonly protocolV3Version; writeHandshakeAsync(): Promise<null>; readHandshakeAsync(): Promise<HandshakeResult>; writeFrameAsync(header: FrameHeader, payload?: Buffer): Promise<void>; readFrameAsync(cancellationToken: CancellationToken): Promise<{ header: FrameHeader; payload: Buffer; } | null>; }