import { type ViewStyle, type TextStyle } from "react-native"; import { type ColorTokens } from "../../style/index.js"; export type Density = "compact" | "default"; export interface CellMetrics { /** A day cell (square). */ cell: ViewStyle; /** The grid width = seven cell widths. */ gridWidth: number; /** A weekday head cell. */ head: ViewStyle; /** The day-label type scale. */ label: TextStyle; } export interface TimelineMetrics { /** One hour row, in px; event-block geometry multiplies against this. */ hourHeight: number; /** The left hour-axis rail width. */ axisWidth: number; /** The week-view container width (capped at 100% of the parent). */ weekWidth: number; /** The day-view container width (capped at 100% of the parent). */ dayWidth: number; /** The day-peek overlay card width. */ peekWidth: number; } export interface DayState { /** The day equals `selected` (the primary highlight). */ selected: boolean; /** The day equals `today` (the secondary highlight). */ today: boolean; } export interface CalendarSkin { /** Per-density cell/grid/head/label metrics. */ metrics: Record; /** iOS/web dim the day cell on press; Android uses a ripple instead (null). */ pressedOpacity: number | null; /** Android ripple over a pressed day cell; null on iOS/web. */ ripple: ((t: ColorTokens) => { color: string; borderless: boolean; radius?: number; }) | null; /** The outer surface: border, radius, padding (layout-only). */ containerBase: ViewStyle; /** The surface fill + border (paints the opaque `card` token; stays solid, does not frost, under glass). */ containerSurface: (t: ColorTokens) => ViewStyle; header: ViewStyle; /** A ghost chevron button box. */ chevron: ViewStyle; /** The chevron glyph. */ chevronText: (t: ColorTokens) => TextStyle; /** The month/year label. */ monthLabel: (t: ColorTokens) => TextStyle; /** The weekday + day grid row (fixed width supplied per density). */ grid: ViewStyle; /** A weekday head cell interior. */ headCell: ViewStyle; /** The weekday label. */ weekdayLabel: (t: ColorTokens) => TextStyle; /** The weekday header strings (single-letter on Android, two-letter elsewhere). */ weekdays: string[]; /** A day cell interior (size from metrics; selected/today fill applied on top). */ dayCellBase: ViewStyle; /** The day-cell fill/outline per state (selected circle, today ring, etc.). */ dayCellState: (t: ColorTokens, state: DayState) => ViewStyle; /** The day-label color/weight per state. */ dayLabel: (t: ColorTokens, state: DayState) => TextStyle; /** The event dot box: size + absolute seat near the cell's bottom edge. */ eventDot: ViewStyle; /** The dot fill per day state (inverts to `primary-foreground` on the selected fill). */ eventDotColor: (t: ColorTokens, state: DayState) => ViewStyle; /** Per-density timeline sizes. */ timeline: Record; /** An hour label on the left axis rail. */ hourLabel: (t: ColorTokens) => TextStyle; /** The hairline drawn across the top of each hour slot. */ slotLine: (t: ColorTokens) => ViewStyle; /** The vertical hairline between week-view day columns. */ colDivider: (t: ColorTokens) => ViewStyle; /** A timed event block: radius, padding, and the leading accent bar (layout-only). */ eventBlock: ViewStyle; /** The event-block fill + accent color, tinted from `primary`. */ eventBlockSurface: (t: ColorTokens) => ViewStyle; /** The event title line inside a block. */ eventTitle: (t: ColorTokens) => TextStyle; /** The event time line inside a block. */ eventTime: (t: ColorTokens) => TextStyle; /** The floating peek/hover card: shape, border, shadow, padding (an overlay * surface, so it paints the `popover` token and frosts under glass via GlassSurface). */ peekCard: (t: ColorTokens) => ViewStyle; /** The peek's day title / the hover card's event title line. */ peekTitle: (t: ColorTokens) => TextStyle; /** The hover card's description body. */ peekBody: (t: ColorTokens) => TextStyle; /** The tinted band behind range endpoints and the days between (the shell sets * the left/right half per position; this carries the fill + vertical insets). */ rangeBand: (t: ColorTokens) => ViewStyle; } export declare const webSkin: CalendarSkin; export declare const iosSkin: CalendarSkin; export declare const androidSkin: CalendarSkin; //# sourceMappingURL=calendar.styles.d.ts.map