import { XcpClient } from '../XcpClient';
import { XcpClientCipher } from '../XcpClientCipher';
import { IQResult } from '../../stanza/typedef/iq/IQResult';
import { IQError } from '../../stanza/typedef/iq/IQError';
import { IQQuery } from '../../stanza/typedef/iq/IQQuery';
import { XcpFrameCodecType } from '../common/XcpFrameCodecType';
import { Message } from '../../stanza/typedef/message/Message';
export declare class XcpClientBase implements XcpClient {
    private cipher;
    private codec;
    private ws;
    private did;
    private type;
    private verifier;
    private verified;
    private frameCodec;
    private messageCodec;
    private resultHandlers;
    private queryHandlers;
    private messageId;
    private verifyHandler;
    private disconnectHandler;
    constructor(serialNumber: string, productId: number, type: string, cipher: XcpClientCipher, codec: XcpFrameCodecType);
    protected createWebSocket(url: string): any;
    connect(host: string, port: number, uri: string): Promise<void>;
    disconnect(): void;
    getDeviceId(): string;
    getDeviceType(): string;
    getNextStanzaId(): string;
    addQueryHandler(method: string, handler: (query: IQQuery) => void): void;
    addDisconnectHandler(handler: () => void): void;
    sendQuery(query: IQQuery): Promise<IQResult>;
    sendResult(result: IQResult): void;
    sendError(error: IQError): void;
    sendMessage(message: Message): void;
    private onConnected;
    private onDisconnect;
    private onError;
    private onMessage;
    private handleMessage;
    private handleQuery;
    private handleResult;
    private handleError;
    private startVerify;
    private setXcpSessionKey;
    private write;
}
