@libp2p/mplex
Version:
JavaScript implementation of https://github.com/libp2p/mplex
39 lines • 1.33 kB
TypeScript
import { AbstractStream, type AbstractStreamInit } from '@libp2p/utils/abstract-stream';
import { Uint8ArrayList } from 'uint8arraylist';
import type { Message } from './message-types.js';
import type { ComponentLogger } from '@libp2p/interface';
export interface Options {
id: number;
send(msg: Message): Promise<void>;
name?: string;
onEnd?(err?: Error): void;
type?: 'initiator' | 'receiver';
maxMsgSize?: number;
logger: ComponentLogger;
}
interface MplexStreamInit extends AbstractStreamInit {
streamId: number;
name: string;
send(msg: Message): Promise<void>;
/**
* The maximum allowable data size, any data larger than this will be
* chunked and sent in multiple data messages
*/
maxDataSize: number;
}
export declare class MplexStream extends AbstractStream {
private readonly name;
private readonly streamId;
private readonly send;
private readonly types;
private readonly maxDataSize;
constructor(init: MplexStreamInit);
sendNewStream(): Promise<void>;
sendData(data: Uint8ArrayList): Promise<void>;
sendReset(): Promise<void>;
sendCloseWrite(): Promise<void>;
sendCloseRead(): Promise<void>;
}
export declare function createStream(options: Options): MplexStream;
export {};
//# sourceMappingURL=stream.d.ts.map