export type SessionStatus = "disconnected" | "generating_qr" | "awaiting_scan" | "connected" | "error";
export type SessionView = Readonly<{
    sessionId: string;
    status: SessionStatus;
    qrDataUrl?: string;
    qrExpiresAt?: string;
    displayPhoneNumber?: string;
    verifiedName?: string;
    lastError?: string;
    updatedAt: string;
}>;
export declare class WhatsAppWebSessionManager {
    private readonly sessions;
    private readonly store;
    private readonly callbacks;
    private readonly logger;
    constructor(configuration: Readonly<{
        directory: string;
        encryptionKey: string;
        callbackSecret: string;
        logLevel: string;
    }>);
    restore(): Promise<void>;
    create(sessionId: string, callbackUrl: string): Promise<SessionView>;
    read(sessionId: string): SessionView;
    disconnect(sessionId: string): Promise<SessionView>;
    send(sessionId: string, input: Record<string, unknown>): Promise<Readonly<{
        messageId: string;
        acceptedAt: string;
    }>>;
    private start;
    private notify;
    private fail;
    private reportCallbackFailure;
    private view;
}
