import { SessionAuthStatus } from '@signalwire/core';
import type { Client } from './client/Client';
import { Task } from './task/Task';
import { Messaging } from './messaging/Messaging';
import { PubSub } from './pubSub/PubSub';
import { Chat } from './chat/Chat';
import { Voice } from './voice/Voice';
import { Video } from './video/Video';
import { SWClientOptions, SWClientSessionListeners } from './types';
export declare class SWClient {
    private _sessionEventMap;
    private _task;
    private _messaging;
    private _pubSub;
    private _chat;
    private _voice;
    private _video;
    /** @internal */
    _client: Client;
    /** @internal */
    _userOptions: SWClientOptions;
    constructor(options: SWClientOptions);
    /**
     * @deprecated Access to internal client will be removed. Use namespace methods instead.
     * @internal
     */
    get client(): Client;
    /**
     * @deprecated Access to userOptions will be removed.
     * @internal
     */
    get userOptions(): SWClientOptions;
    get authStatus(): SessionAuthStatus;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    listen(listeners: SWClientSessionListeners): () => void;
    private _attachSessionListeners;
    private _detachSessionListeners;
    get task(): Task;
    get messaging(): Messaging;
    get pubSub(): PubSub;
    get chat(): Chat;
    get voice(): Voice;
    get video(): Video;
}
//# sourceMappingURL=SWClient.d.ts.map