import { TransactionResolveSocket } from '../../interface/Interface';
import { ConnectionStatus } from '../../enum/Enum';
import { Queue } from '../Queue';
import { XAPI } from '../XAPI';
export declare class SocketConnection extends Queue {
    protected XAPI: XAPI;
    private _password;
    private loginTimeout;
    private pingTimeout;
    constructor(XAPI: XAPI, password: string, url: string);
    connect(): void;
    onConnectionChange(callBack: (status: ConnectionStatus) => void, key?: string | null): void;
    private setConnectionStatus;
    private tryLogin;
    private handleError;
    private handleSocketMessage;
    protected sendCommand<T>(command: string, args?: any, transactionId?: string | null, urgent?: boolean): Promise<TransactionResolveSocket<T>>;
    closeConnection(): void;
    ping(): Promise<TransactionResolveSocket<null>>;
    logout(): Promise<TransactionResolveSocket<null>>;
    login(): Promise<TransactionResolveSocket<unknown>>;
}
