import type { PhoneControlBrokerClient } from './broker/client.js';
export type ShortyPhoneProvider = 'whatsapp';
export interface ShortyPhoneStatus {
    provider?: ShortyPhoneProvider;
    enabled: boolean;
    pairedChatId: string | null;
    qrText?: string;
    lastError?: string;
    liveDesktopCount?: number;
    currentDesktopLabel?: string;
    activeDesktopLabel?: string | null;
    currentDesktopIsActiveTarget?: boolean;
    switchableToCurrentDesktop?: boolean;
}
export interface ShortyPhoneManagerOptions {
    brokerClient: PhoneControlBrokerClient;
    teamAccount?: boolean;
}
export type ShortyPhoneStatusListener = (status: ShortyPhoneStatus, previousStatus: ShortyPhoneStatus) => void;
export declare class ShortyPhoneManager {
    private readonly brokerClient;
    private teamAccount;
    private lastStatus;
    private readonly listeners;
    private statusPollTimer?;
    private statusPollInFlight?;
    constructor(options: ShortyPhoneManagerOptions);
    getStatus(): ShortyPhoneStatus;
    refreshStatus(): Promise<ShortyPhoneStatus>;
    autoStartConfiguredProvider(): Promise<ShortyPhoneStatus>;
    connectWhatsApp(): Promise<ShortyPhoneStatus>;
    resetWhatsAppLink(options?: {
        reconnect?: boolean;
    }): Promise<ShortyPhoneStatus>;
    disconnect(): Promise<void>;
    subscribe(listener: ShortyPhoneStatusListener): () => void;
    close(): Promise<void>;
    setTeamAccount(teamAccount: boolean): Promise<void>;
    private normalizeStatus;
    private hydrateTransientStatus;
    private shouldPollForQr;
    private isWhatsAppAllowed;
    private assertWhatsAppAllowed;
    private getWhatsAppDisabledStatus;
    private applyWhatsAppPolicy;
    private applyWhatsAppDisabledStatus;
    private startPolling;
    private stopPolling;
    private pollForStatusChanges;
    private updateStatus;
    private statusesEqual;
}
//# sourceMappingURL=shorty-phone-manager.d.ts.map