import { type ComponentType } from "react"; import { type ViewStyle, type TextStyle } from "react-native"; import { type ColorTokens } from "../../style/index.js"; import { type InputProps } from "../../atoms/input/input.shared.js"; export type InputComponent = ComponentType; export type Width = "narrow" | "small" | "medium" | "large"; export declare const panelWidth: Record; export type ActionLayout = "buttons" | "capsule"; export interface AlertDialogSkin { /** The contained dim scrim that centers the card within the preview area. */ backdrop: ViewStyle; /** The card base: shape, border (or lack of), padding, shadow. tokens drive fill. */ card: (t: ColorTokens) => ViewStyle; /** Title type + alignment (centered on iOS, left on Android/web). */ title: (t: ColorTokens) => TextStyle; /** Description type + alignment + color. */ description: (t: ColorTokens) => TextStyle; /** The confirmation-field block container ("Type DELETE to confirm" + input). */ inputBlock: ViewStyle; /** The confirmation-field label. */ inputLabel: (t: ColorTokens) => TextStyle; /** Which action structure the shell renders. */ actionLayout: ActionLayout; /** The right-aligned Button row container (the "buttons" layout). */ actions: ViewStyle; /** The size prop passed to the shell's Cancel/Confirm Buttons. */ buttonSmall: boolean; /** The intent props for the Cancel Button (web = outline). */ cancelButton: { outline?: boolean; ghost?: boolean; }; /** An Android text-button touch target (no fill). When set, the shell renders * the Cancel/Confirm actions as flat M3 TEXT buttons instead of Button atoms, * so a destructive confirm is a red LABEL on a transparent button, never a * filled red button (mirrors the plain Dialog). */ textButton: ViewStyle | null; /** The Android text-button label; brand `primary` indigo, `destructive` reds an * irreversible confirm. */ textButtonLabel: ((t: ColorTokens, destructive: boolean) => TextStyle) | null; /** The Android ripple over a text button; null on the other platforms. */ textButtonRipple: ((t: ColorTokens) => { color: string; borderless: boolean; }) | null; /** The action row that holds the two equal-width capsules with a gap. */ capsuleRow: ViewStyle | null; /** A single capsule cell base (shape/sizing); fill comes from the *Fill helpers. */ capsuleCell: ViewStyle | null; /** The Cancel (gray) capsule fill. */ cancelFill: ((t: ColorTokens) => ViewStyle) | null; /** The Confirm capsule fill. Non-destructive = filled `primary`; destructive * keeps the gray `secondary` fill (the kit fills only the primary confirm). */ confirmFill: ((t: ColorTokens, destructive: boolean) => ViewStyle) | null; /** The Cancel capsule label (regular 400 weight, on-secondary color). */ cancelLabelStyle: ((t: ColorTokens) => TextStyle) | null; /** The Confirm capsule label (semibold 600; white on the filled primary fill, * `destructive` red over the gray fill when destructive). */ confirmLabelStyle: ((t: ColorTokens, destructive: boolean) => TextStyle) | null; /** iOS/web dim on press; Android uses a ripple instead (null). */ pressedOpacity: number | null; /** Android ripple over the action cells; null on iOS/web. */ ripple: ((t: ColorTokens) => { color: string; borderless: boolean; }) | null; } export declare const backdropOverlay: ViewStyle; export declare const root: ViewStyle; export declare const triggerWrap: ViewStyle; export declare const triggerGap: ViewStyle; export declare const cardBase: ViewStyle; export declare const webSkin: AlertDialogSkin; export declare const iosSkin: AlertDialogSkin; export declare const androidSkin: AlertDialogSkin; //# sourceMappingURL=alert-dialog.styles.d.ts.map