import { type ReactNode, type RefObject } from "react"; export declare function destructiveActionFocusTarget(trigger: HTMLElement | null, fallback: HTMLElement | null): HTMLElement | null; export declare function ConfirmDialog({ open, onOpenChange, title, description, children, confirmLabel, confirmDisabled, pendingLabel, cancelLabel, cancelAutoFocus, destructive, restoreFocusRef, restoreFocusFallbackRef, onConfirm, }: { open: boolean; onOpenChange: (open: boolean) => void; /** Names the object: "Delete environment 'staging'?" */ title: ReactNode; /** One consequence sentence: what is lost, whether it can be undone. */ description?: ReactNode | undefined; /** Optional extra content (e.g. an affected-items list). */ children?: ReactNode | undefined; /** Verb + object: "Delete environment", "Revoke key". */ confirmLabel: string; confirmDisabled?: boolean | undefined; pendingLabel?: string | undefined; cancelLabel?: string | undefined; /** Opt in when the safe/default action must receive initial focus. */ cancelAutoFocus?: boolean | undefined; destructive?: boolean | undefined; restoreFocusRef?: RefObject | undefined; restoreFocusFallbackRef?: RefObject | undefined; /** * May be async; the dialog shows pending state while it runs. The dialog * closes on success — returning `false` (or throwing) keeps it open so a * failed mutation never reads as a completed one. Handlers that catch their * own errors (to toast) must return `false` on the failure path. */ onConfirm: () => void | boolean | Promise; }): import("react").JSX.Element;