///
///
import * as net from "net";
import { ClientQuery } from "../utils/type";
import { Connection } from "./Connection";
import { DebugRouterConnector } from "../connector";
export interface ClientEventsListener {
onConnectionCreated(connection: Connection, port: number, clientQuery: ClientQuery): number;
onConnectionDeleted(id: number): void;
}
export default class ClientAdapter {
protected driver: DebugRouterConnector;
protected listener: ClientEventsListener | null;
protected readonly port: number;
protected readonly device: string;
protected readonly device_id: string;
readonly type: string;
protected readonly device_host: string;
private readonly initialBufferCapacity;
private readonly usbmuxdPacketHeaderLength;
private bufferCapacity;
private buffer;
private offset;
private end;
protected tcpClient: net.Socket;
protected isConnected: boolean;
protected connection: Connection | null;
protected from?: number;
protected id: number;
constructor(driver: DebugRouterConnector, listener: ClientEventsListener | null, port: number, device: string, device_id: string, type: string, device_host: string);
protected handleData(client: net.Socket, data: Buffer): void;
protected handleOff(client: net.Socket): void;
protected handleUnpackMessage(data: any): void;
onConnect(): void;
protected handleMessage(message: string): Promise;
private handleConnection;
protected handleClientEvent(message: string, session_id: number | undefined): void;
protected handleSessionList(sessionList: any): void;
connect(): void;
destroy(): void;
}