import { type StyleProp, type ViewStyle } from "../../style/index.js"; import { Button as WebButton } from "../../atoms/button/button.js"; import { Input as WebInput } from "../../atoms/input/input.js"; import { type Width, type AlertDialogSkin } from "./alert-dialog.styles.js"; export interface AlertDialogProps { title?: string; description?: string; trigger?: string; confirmLabel?: string; cancelLabel?: string; open?: boolean; onOpenChange?: (open: boolean) => void; narrow?: boolean; small?: boolean; large?: boolean; withInput?: boolean; /** The token the confirmation field must match to enable confirm (default * "DELETE"). Only used when `withInput` is set; drives the placeholder * ("type DELETE to confirm"), the field's accessible name, and the gate. */ confirmText?: string; destructive?: boolean; onConfirm?: () => void; onCancel?: () => void; /** * Presents the confirm OVER the page instead of inline where it is mounted. * * The default is a contained overlay, which the docs catalogue needs to show * one inside an example stage. An application asking to confirm a destructive * action needs the opposite: inline, the scrim appears wherever the component * happens to sit, the page behind stays scrollable and clickable, and the * dialog still claims `aria-modal`. Teleports into the nearest * `OverlayProvider`; with none in the tree it renders in place. */ overlay?: boolean; /** * Show the open dialog as a non-modal specimen in the page, for a catalogue or a * showcase: it keeps its look, its alertdialog role and its labelling, but does not * take focus when it opens, trap Tab, return focus, claim `aria-modal`, or cancel on * Escape or native back. Ignored with `trigger`, which always opens a live modal. */ embedded?: boolean; /** E2E hook forwarded to the root element. */ testID?: string; /** Outer layout composition only (width/flex within a parent), never a restyle hook. */ style?: StyleProp; } export declare function widthOf(p: AlertDialogProps): Width; /** * The components an AlertDialog draws with that look different per platform: the * action Buttons and the confirmation field's Input (`withInput`). Each platform's * thin `.tsx`/`.ios`/`.android` file passes the builds it resolves for that platform, * so the alert matches its platform on every build path. This matters for the WEB docs * 3-up preview: a bare barrel import always resolves the WEB builds in a browser * bundler, which would paint web buttons and a boxed field inside the iOS and Android * rows. On a real device Metro resolves the right builds by extension regardless, so * the defaults (the web bases) are correct there too. */ export interface AlertDialogParts { Button?: typeof WebButton; Input?: typeof WebInput; } /** Build an AlertDialog component from a platform skin and its platform parts. */ export declare function createAlertDialog(skin: AlertDialogSkin, parts?: AlertDialogParts): (props: AlertDialogProps) => import("react").JSX.Element; //# sourceMappingURL=alert-dialog.shared.d.ts.map