///
///
import tls from 'tls';
import type { demux } from './generated';
import { BaseEmitter } from './typed-emitter';
export interface DemuxSocketProps {
host: string;
startRequestId: number;
timeout: number;
tlsConnectionOptions?: tls.ConnectionOptions;
}
export declare type DemuxSocketEvents = {
connectionData: (connectionId: number, connectionData: Buffer) => void;
push: (payload: demux.Downstream & protobuf.Message) => void;
};
export declare class DemuxSocket extends BaseEmitter {
private host;
private debug;
private currentRequestId;
private timeout;
private tlsConnectionOptions?;
socket?: tls.TLSSocket;
private pendingRequestResponses;
private incomingPayloadBuffer;
private incomingPayloadLength;
constructor(props: DemuxSocketProps);
private getSocket;
private write;
private handleDownstreamData;
request(payload: Omit): Promise;
push(payload: demux.Push): Promise;
destroy(error?: Error | undefined): Promise;
}