import { TypedEmitter } from "tiny-typed-emitter";
import { PushClientEvents } from "./interfaces";
export declare class PushClient extends TypedEmitter<PushClientEvents> {
    private readonly HOST;
    private readonly PORT;
    private readonly MCS_VERSION;
    private readonly HEARTBEAT_INTERVAL;
    private loggedIn;
    private streamId;
    private lastStreamIdReported;
    private currentDelay;
    private client?;
    private heartbeatTimeout?;
    private reconnectTimeout?;
    private persistentIds;
    private static proto;
    private pushClientParser;
    private auth;
    private constructor();
    static init(auth: {
        androidId: string;
        securityToken: string;
    }): Promise<PushClient>;
    private initialize;
    getPersistentIds(): Array<string>;
    setPersistentIds(ids: Array<string>): void;
    connect(): void;
    private buildLoginRequest;
    private buildHeartbeatPingRequest;
    private buildHeartbeatAckRequest;
    private onSocketData;
    private onSocketConnect;
    private onSocketClose;
    private onSocketError;
    private handleParsedMessage;
    private handleHeartbeatPing;
    private handleHeartbeatAck;
    private convertPayloadMessage;
    private getStreamId;
    private newStreamIdAvailable;
    private scheduleHeartbeat;
    private sendHeartbeat;
    isConnected(): boolean;
    private getHeartbeatInterval;
    private getCurrentDelay;
    private resetCurrentDelay;
    private scheduleReconnect;
    close(): void;
}
