import { type ViewStyle, type TextStyle } from "react-native"; import { type ColorTokens } from "../../style/index.js"; export type Elevation = "raised" | "flat" | "default"; export type Density = "compact" | "comfortable" | "default"; export interface CardSkin { /** Corner radius of the card surface. */ radius: number; /** Corner curve; iOS sets "continuous" (Apple superellipse), a no-op elsewhere. */ curve?: ViewStyle["borderCurve"]; /** Surface colors (fill + border color), per elevation variant. */ surface: (tokens: ColorTokens, e: Elevation) => ViewStyle; /** Elevation -> shadow mapping (resting/raised/flat differ per OS). */ elevation: (e: Elevation) => ViewStyle; /** The card's own content padding + flat-child gap, per density. The `default` * row is the standard padded surface every plain card takes (what the `padded` * prop makes explicit), so the surface owns the rhythm between flat children; * `flush` opts out of the whole row. */ density: Record; /** The standard inset WITHOUT the flat-child gap. The Card shell no longer * reads this (the default density row superseded it); it remains the gap-free * inset that derived chrome spreads into its own row (Radio's `card` mode, * which owns its internal ring-to-label gap). */ padded: ViewStyle; } export declare const webSkin: CardSkin; export declare const iosSkin: CardSkin; export declare const androidSkin: CardSkin; export declare const cardBase: ViewStyle; export declare const header: ViewStyle; export declare const title: (tokens: ColorTokens) => TextStyle; export declare const description: (tokens: ColorTokens) => TextStyle; export declare const content: ViewStyle; export declare const footer: ViewStyle; export declare const separator: (tokens: ColorTokens) => ViewStyle; export declare const bodyText: (tokens: ColorTokens) => TextStyle; export declare const footerText: (tokens: ColorTokens) => TextStyle; //# sourceMappingURL=card.styles.d.ts.map