import EventEmitter from "events";
import { KeyBackupInfo, VerificationRequest } from "matrix-js-sdk/src/crypto-api";
import { SecretStorage } from "matrix-js-sdk/src/matrix";
export declare enum Phase {
    Loading = 0,
    Intro = 1,
    Busy = 2,
    Done = 3,// final done stage, but still showing UX
    ConfirmSkip = 4,
    Finished = 5,// UX can be closed
    ConfirmReset = 6
}
export declare class SetupEncryptionStore extends EventEmitter {
    private started?;
    phase?: Phase;
    verificationRequest: VerificationRequest | null;
    backupInfo: KeyBackupInfo | null;
    keyId: string | null;
    keyInfo: SecretStorage.SecretStorageKeyDescription | null;
    hasDevicesToVerifyAgainst?: boolean;
    static sharedInstance(): SetupEncryptionStore;
    start(): void;
    stop(): void;
    fetchKeyInfo(): Promise<void>;
    usePassPhrase(): Promise<void>;
    private onUserTrustStatusChanged;
    onVerificationRequest: (request: VerificationRequest) => void;
    onVerificationRequestChange: () => Promise<void>;
    skip(): void;
    skipConfirm(): void;
    returnAfterSkip(): void;
    reset(): void;
    resetConfirm(): Promise<void>;
    returnAfterReset(): void;
    done(): void;
    private setActiveVerificationRequest;
    lostKeys(): boolean;
}
