import { type ViewStyle, type TextStyle } from "react-native"; import { type ColorTokens } from "../../style/index.js"; export type CancelLayout = "separateCard" | "lastRow"; export interface ActionSheetSkin { /** The scrim dimming alpha behind the sheet (iOS/web ~0.4, Android ~0.32). */ scrimOpacity: number; /** Where the Cancel affordance lives: a separate card (iOS/web) or the last row (Android). */ cancelLayout: CancelLayout; /** The bottom-anchored stack container (side inset + gap between the cards). */ stack: ViewStyle; /** * contentContainerStyle for the action-rows ScrollView. iOS uses it to space the * detached capsule buttons (gap 10); web/Android leave it undefined so the rows * sit flush (their separation comes from hairline dividers or M3 list spacing). */ rowsContent?: ViewStyle; /** The actions card surface shape (radius, fill, shadow); fed to GlassSurface. */ actionsCard: (t: ColorTokens) => ViewStyle; /** The separate Cancel card surface shape (iOS/web only); null on Android. */ cancelCard: ((t: ColorTokens) => ViewStyle) | null; /** An optional drag handle at the top of the sheet (Android); null elsewhere. */ handle: ((t: ColorTokens) => ViewStyle) | null; /** The title/message header block container (padding + alignment). */ header: ViewStyle; /** The header title type (centered gray on iOS/web, left on Android). */ headerTitle: (t: ColorTokens) => TextStyle; /** The header message type. */ headerMessage: (t: ColorTokens) => TextStyle; /** A hairline divider drawn between the header and rows, and between rows (iOS/web). */ divider: ((t: ColorTokens) => ViewStyle) | null; /** A single action row container (sizing + alignment). */ row: ViewStyle; /** * A token-derived fill painted on each action row (iOS gives each capsule a * translucent neutral fill); null on web/Android, where the rows are flush and * take the card's fill. */ rowFill: ((t: ColorTokens) => ViewStyle) | null; /** An action row label; `destructive` tints it red, `disabled` dims it. */ rowLabel: (t: ColorTokens, destructive: boolean, disabled: boolean) => TextStyle; /** The Cancel row container (its own card on iOS/web; the last list row on Android). */ cancelRow: ViewStyle; /** The Cancel row label (bold on iOS/web; a plain list label on Android). */ cancelLabel: (t: ColorTokens) => TextStyle; /** iOS/web dim-on-press opacity; null on Android (the ripple carries press). */ pressedOpacity: number | null; /** Android ripple over the rows; null on iOS/web. */ ripple: ((t: ColorTokens) => { color: string; borderless: boolean; }) | null; } export declare const scrim: ViewStyle; export declare const scrimDim: { backgroundColor: string; pointerEvents: "none"; }; export declare const scrimContent: ViewStyle; export declare const webSkin: ActionSheetSkin; export declare const iosSkin: ActionSheetSkin; export declare const androidSkin: ActionSheetSkin; //# sourceMappingURL=action-sheet.styles.d.ts.map