import React from "react"; interface LockOverlayProps { /** * Validates the password and unlocks the session. Throw on bad * password — the overlay catches and surfaces a generic error. */ onUnlock: (password: string) => Promise | void; /** Optional success-toast message. Defaults to `${appName} unlocked`. */ successMessage?: string; /** * Optional biometric/passkey unlock. When provided, this fires * AUTOMATICALLY once on mount, and the password field/Unlock button * are not rendered at all until this settles — see the mode-switching * comment below for why. This overlay has no opinion on *how* unlock * happens (passkey PRF, platform secure-storage, etc.) — the caller * owns the whole ceremony and is expected to swallow expected failure * modes (user cancel, nothing enrolled) rather than throw; a throw * here surfaces the same generic "unlock failed" error the password * path does, which is the wrong message for "you tapped cancel on the * Face ID prompt". */ onBiometricUnlock?: () => Promise | void; /** * Whether `onBiometricUnlock` fires automatically on mount. Defaults * to true (the original behavior) — set false for a re-lock triggered * by idle timeout rather than a fresh app launch, so the OS biometric * sensor doesn't pop up unprompted every time the session times out * from inactivity. The manual "Unlock with Biometrics Instead" button * is unaffected by this — it's still shown (and still works) whenever * `onBiometricUnlock` is provided, regardless of this flag; only the * automatic first attempt is what this suppresses. */ autoPromptBiometric?: boolean; } /** * Unlock form for session-locked flows (e.g. vault re-lock after idle). * The typed password never leaves this component — it is captured into a * local closure variable and wiped from React state before the async * unlock work begins so the fiber tree no longer references the * plaintext during PBKDF2 / WebCrypto derivation. */ export declare function LockOverlay({ onUnlock, successMessage, onBiometricUnlock, autoPromptBiometric, }: LockOverlayProps): React.JSX.Element; export {}; //# sourceMappingURL=LockOverlay.d.ts.map