UNPKG

@berish/rfp

Version:

Binary secure transport organization protocol for peer communication using function fingerprints

44 lines 1.7 kB
/// <reference types="node" /> import type { TransportPlugin } from './transportPlugin'; import type { Peer } from '../peer'; import type { PeerChunk } from '../chunk'; export interface PeerTransportAdapter<T = any> { transport?: T; send?(data: any): void; subscribe?(cb: (data: any) => any): () => void; binaryFormat: 'string' | 'binary'; binaryEncoder?: PeerTransportBinaryEncoder; stringEncoder?: PeerTransportStringEncoder; } export interface PeerTransportBinaryEncoder { encode: (data: any) => Buffer | Promise<Buffer>; decode: (data: Buffer) => any; } export interface PeerTransportStringEncoder { encode: (data: Buffer) => string | Promise<string>; decode: (data: string) => Buffer | Promise<Buffer>; } export interface PeerTransportEventEmitterMap { subscribe: any; } export declare class PeerTransport<Adapter extends PeerTransportAdapter<any> = PeerTransportAdapter<any>> { private _transportAdapter; private _plugins; private _cacheEmitter; private _isConnected; constructor(transportAdapter: Adapter, plugins?: TransportPlugin[]); get transportAdapter(): Adapter; get binaryEncoder(): PeerTransportBinaryEncoder; get stringEncoder(): PeerTransportStringEncoder; get plugins(): TransportPlugin[]; send(peer: Peer, data: PeerChunk<any>): Promise<boolean>; subscribe(peer: Peer, callback: (data: PeerChunk<any>) => void): string; unsubscribe(eventHash: string): void; private _beforeSend; private _beforeResponse; private _beforeDataSend; private _beforeTransportSend; private _beforeDataResponse; private _beforeTransportResponse; } //# sourceMappingURL=transport.d.ts.map