import { type ReactNode } from 'react';
/** Curated imperative handle for agent / external automation. */
export interface PrivacyLockHandle {
isLocked: () => boolean;
lock: () => void;
unlock: () => void;
}
export interface PrivacyLockProps {
/** Controlled open state. Pair with `onOpenChange`. */
open?: boolean;
/** Uncontrolled initial state. Ignored when `open` is provided. */
defaultOpen?: boolean;
/** Fires whenever the dialog opens or closes — trigger click, action button, etc. */
onOpenChange?: (open: boolean) => void;
/** Fires when the "Unlock screen" button is activated. Dialog closes automatically. */
onUnlock?: () => void;
/** Fires when "Account page" is activated. Button is omitted when undefined. Dialog closes automatically. */
onAccountPage?: () => void;
/** Fires when "Log out" is activated. Button is omitted when undefined. Dialog closes automatically. */
onSignOut?: () => void;
/** Override the trigger icon. Default: `lucide-react` ``. */
triggerIcon?: ReactNode;
/** Accessible name for the trigger. Default: t('privacyLock.triggerAriaLabel'). */
triggerAriaLabel?: string;
/** Tooltip for the trigger. Default: t('privacyLock.triggerTooltip'). */
triggerTooltip?: string;
/** Accessible title of the dialog (visually hidden). Default: t('privacyLock.title'). */
title?: string;
/** Visible supporting text under the action buttons. Default: t('privacyLock.description'). */
description?: string;
/** Label for the "Unlock screen" button. Default: t('privacyLock.unlock'). */
unlockLabel?: string;
/** Label for the "Account page" button. Default: t('privacyLock.accountPage'). */
accountPageLabel?: string;
/** Label for the "Log out" button. Default: t('privacyLock.signOut'). */
signOutLabel?: string;
/** Extra classes on the trigger `IconButton`. */
className?: string;
}
export declare const PrivacyLock: import("react").ForwardRefExoticComponent>;
//# sourceMappingURL=privacy-lock.d.ts.map