///
import * as fs from 'fs';
import { CommuniqueType, Response, ResponseWithTag } from './Messages';
import { BodyType, Href, PingResponseDefinition, ClientSettingDefinition, ExceptionDetail } from './MessageBodyTypes';
import TypedEmitter from 'typed-emitter';
export interface Message {
CommuniqueType: CommuniqueType;
Header: {
ClientTag: string;
Url: string;
};
Body?: Record;
}
declare type LeapClientEvents = {
unsolicited: (response: Response) => void;
disconnected: () => void;
};
declare const LeapClient_base: new () => TypedEmitter;
export declare class LeapClient extends LeapClient_base {
private readonly host;
private readonly port;
private connected;
private socket?;
private readonly tlsOptions;
private inFlightRequests;
private taggedSubscriptions;
private responseParser;
private sslKeylogFile?;
constructor(host: string, port: number, ca: string, key: string, cert: string, sslKeylogFile?: fs.WriteStream);
retrieve(href: Href, endpoint?: string): Promise;
request(communiqueType: CommuniqueType, url: string, body?: Record, tag?: string): Promise;
connect(): Promise;
close(): void;
subscribe(url: string, callback: (resp: Response) => void, communiqueType?: CommuniqueType | undefined, body?: Record, tag?: string): Promise;
drain(): void;
private _empty;
private _onConnect;
private socketDataHandler;
private _handleResponse;
setVersion(): Promise;
ping(): Promise;
}
export {};
//# sourceMappingURL=LeapClient.d.ts.map