import { DemuxSocket } from './demux-socket'; import { DemuxServiceName } from './proto-defs'; import { BaseEmitter } from './typed-emitter'; export interface DemuxConnectionProps { serviceName: DemuxServiceName; connectionId: number; socket: DemuxSocket; timeout: number; startRequestId?: number; } export declare type ConnectionEvents = { push: (payload: DownType & protobuf.Message) => void; }; export declare class DemuxConnection, DownType extends Record> extends BaseEmitter> { serviceName: DemuxServiceName; connectionId: number; private timeout; private socket; private debug; private currentRequestId; private pendingRequestResponses; constructor(props: DemuxConnectionProps); private handleConnectionData; /** * Sends an inner service request payload via connection push * @param payload An inner service request payload to send * @returns The inner service response payload */ push(payload: UpType): Promise; /** * Tracks and increments requestId for sending service requests inside a connection push * @param payload An inner service request payload to send * @returns The inner service response payload */ request(payload: UpType): Promise; }