import { ReactNode } from 'react';
import { DialogSize } from './Dialog';
export type AlertDialogVariant = 'confirmation' | 'information' | 'destructive' | 'error' | 'warning';
export type AlertDialogAutoFocus = 'primary' | 'secondary' | 'cancel';
export interface AlertDialogProps {
    isOpen: boolean;
    onClose: () => void;
    title: string;
    children: ReactNode;
    variant?: AlertDialogVariant;
    size?: DialogSize;
    testId?: string;
    primaryActionLabel: string;
    secondaryActionLabel?: string;
    cancelLabel?: string;
    isPrimaryActionDisabled?: boolean;
    isSecondaryActionDisabled?: boolean;
    autoFocusButton?: AlertDialogAutoFocus;
    /**
     * Type-to-confirm gate. Renders an input below the message; the
     * primary action stays disabled until the user types this exact
     * phrase. Comparison trims whitespace from both sides and is
     * case-sensitive. An empty or whitespace-only value is treated as
     * "no gate", since a blank phrase couldn't meaningfully gate anything.
     * Reserve for high-risk destructive actions where a click is too easy.
     */
    confirmText?: string;
    /**
     * Visible label rendered above the confirm input, referenced by
     * `aria-labelledby` so non-text ReactNode content stays the source of
     * the accessible name. When omitted, an English `aria-label` fallback
     * is used — pass this prop to localise the instruction.
     */
    confirmLabel?: ReactNode;
    onPrimaryAction: () => void;
    onSecondaryAction?: () => void;
    onCancel?: () => void;
}
export declare const AlertDialog: ({ isOpen, onClose, title, children, variant, size, testId, primaryActionLabel, secondaryActionLabel, cancelLabel, isPrimaryActionDisabled, isSecondaryActionDisabled, autoFocusButton, confirmText, confirmLabel, onPrimaryAction, onSecondaryAction, onCancel, }: Readonly<AlertDialogProps>) => import("react").JSX.Element;
//# sourceMappingURL=AlertDialog.d.ts.map