export declare class DolphinClient {
    constructor(url?: string, deviceId?: string, options?: {});
    /** Save or clear the access token */
    setToken(token: any): void;
    /** Connect to the Dolphin realtime server */
    connect(): Promise<unknown>;
    /** Disconnect cleanly */
    disconnect(): void;
    /** @private */
    _handleMessage(data: any): void;
    /** @private */
    _dispatch(pattern: any, payload: any, topic: any): void;
    /** @private */
    _sendRaw(msg: any): void;
    /** Flush buffered messages after reconnect @private */
    _flushOfflineQueue(): void;
    /** @private */
    _sendAck(to: any, msgId: any): void;
    /** MQTT wildcard topic matching @private */
    _matchTopic(pattern: any, topic: any): boolean;
    /** @private */
    _maybeReconnect(): void;
    /**
     * Subscribe to a topic (MQTT wildcards supported: + and #).
     * @param {string}        topic
     * @param {TopicCallback} callback
     */
    subscribe(topic: any, callback: any): void;
    /**
     * Unsubscribe from a topic.
     * @param {string}        topic
     * @param {TopicCallback} callback
     */
    unsubscribe(topic: any, callback: any): void;
    /**
     * Publish a message to a topic. Queued if offline.
     * @param {string} topic
     * @param {any}    payload
     */
    publish(topic: any, payload: any): void;
    /**
     * High-frequency data push (IoT sensors).
     * @param {string} topic
     * @param {any}    payload
     */
    pubPush(topic: any, payload: any): void;
    /**
     * Request historical data from a topic.
     * @param {string} topic
     * @param {number} [count=10]
     */
    subPull(topic: any, count?: number): void;
    /**
     * Upload a file to the server in chunks.
     * @param {string}   fileId
     * @param {Blob|ArrayBuffer|Uint8Array} fileData
     * @param {string}   [filename]
     * @param {function(number): void} [onProgress]  — progress callback (0-100)
     * @returns {Promise<void>}
     */
    pubFile(fileId: any, fileData: any, filename: string | undefined, onProgress: any): Promise<void>;
    /** @private */
    _uint8ToBase64(uint8: any): string;
    /**
     * Download a file from the server by chunks.
     * @param {string} fileId
     * @param {number} [startChunk=0]
     */
    subFile(fileId: any, startChunk?: number): void;
    /**
     * Resume a file download from saved progress.
     * @param {string} fileId
     */
    resumeFile(fileId: any): void;
    /**
     * Save download chunk progress.
     * @param {string} fileId
     * @param {number} chunkIndex
     */
    saveFileProgress(fileId: any, chunkIndex: any): void;
    /**
     * @param {function(SignalMessage): void} handler
     */
    onSignal(handler: any): void;
    /**
     * @param {function(SignalMessage): void} handler
     */
    offSignal(handler: any): void;
    /**
     * @param {function(FileMetadata): void} handler
     */
    onFileAvailable(handler: any): void;
    /**
     * @param {function(FileMetadata): void} handler
     */
    offFileAvailable(handler: any): void;
}
