import type { DesktopRemoteControlRuntime, DesktopRemoteControlSession, SequencedDesktopRemoteControlEvent } from '../desktop-runtime.js';
import { type WhatsAppTransportFactory } from '../whatsapp-linked.js';
import type { PhoneRemoteControlCommand, PhoneRemoteControlResult, PhoneRemoteControlSurface } from './surface.js';
import type { BrokerPhoneStatus } from './types.js';
export interface PhoneControlBrokerClientOptions {
    agentDir: string;
    runtime: DesktopRemoteControlRuntime;
    session: DesktopRemoteControlSession;
    log?: (message: string) => void;
    transportFactory?: WhatsAppTransportFactory;
}
export declare class PhoneControlBrokerClient implements PhoneRemoteControlSurface {
    private readonly agentDir;
    private readonly runtime;
    private readonly session;
    private readonly log;
    private readonly desktopId;
    private readonly configStore;
    private readonly settingsStore;
    private readonly injectedTransportFactory?;
    private phoneStatus;
    private whatsappController?;
    private whatsAppSessionReady;
    private lastActivityAt;
    private pendingApprovalCount;
    private phoneOriginatedTurnActive;
    private readonly unsubscribeRuntime;
    constructor(options: PhoneControlBrokerClientOptions);
    getStatus(): BrokerPhoneStatus;
    close(): Promise<void>;
    getBrokerStatus(): Promise<BrokerPhoneStatus>;
    connectWhatsApp(): Promise<BrokerPhoneStatus>;
    autoStartConfiguredProvider(): Promise<BrokerPhoneStatus>;
    disconnect(): Promise<void>;
    resetWhatsAppLink(options?: {
        reconnect?: boolean;
    }): Promise<BrokerPhoneStatus>;
    handleCommand(command: PhoneRemoteControlCommand): Promise<PhoneRemoteControlResult>;
    subscribe(listener: (event: SequencedDesktopRemoteControlEvent) => void): () => void;
    private buildDesktopSummary;
    private buildCurrentDesktopLabel;
    private buildPhoneStatus;
    private resolveWhatsAppConfig;
    private startWhatsAppController;
    private closeController;
    private handleWhatsAppStateChange;
    private waitForWhatsAppQrOrReady;
}
//# sourceMappingURL=client.d.ts.map