import net from 'net';
import type { TelnetAvr } from './telnetAvr';
import { MessageQueue } from './messageQueue';
export declare class Connection {
    socket: net.Socket | null;
    private lastConnect;
    messageQueue: MessageQueue;
    connectionReady: boolean;
    lastWrite: number | null;
    private clearQueueTimeout;
    private disconnectTimeout;
    private reconnectCounter;
    forcedDisconnect: boolean;
    private isConnecting;
    log: any;
    private discoveredDevices;
    private dataHandler;
    private host;
    private port;
    private avr;
    private maxReconnectAttemptsBeforeDiscover;
    private maxReconnectAttempts;
    private isReconnect;
    private checkConnInterval;
    private reconnectTimeout;
    private reconnectCallbackTimeout;
    private device;
    reconnectFunctionFlag: boolean;
    constructor(telnetThis: TelnetAvr);
    private disconnectOnExit;
    connect(callback?: () => void): void;
    private initializeSocket;
    private handleClose;
    private handleData;
    private handleError;
    private tryReconnect;
    reconnect(callback: () => void): Promise<void>;
    disconnect(): void;
    isConnected(): boolean;
    sendMessage(message: string, callbackChars?: string, callback?: (error: any, response: string) => void): Promise<void>;
    directSend(message: string, callback?: (error: any, response: string) => void): void;
    private queueMessage;
    onDisconnect(): void;
    onConnect(): void;
    setConnectionReady(ready: boolean): void;
    setLastWrite(timestamp: number): void;
    get lastMessageReceived(): number | null;
    set lastMessageReceived(value: number | null);
}
//# sourceMappingURL=connection.d.ts.map