import { Color } from '@ionic/core'; /** * Time unit for countdown display. */ export interface CountdownUnit { /** Value of the unit */ value: number; /** Label for the unit */ label: string; /** Whether to show this unit */ show: boolean; } /** * Countdown time breakdown. */ export interface CountdownTime { days: number; hours: number; minutes: number; seconds: number; totalSeconds: number; isExpired: boolean; } /** * Labels for countdown units. */ export interface CountdownLabels { days?: string; hours?: string; minutes?: string; seconds?: string; /** Singular forms (optional) */ day?: string; hour?: string; minute?: string; second?: string; } /** * Default labels in Spanish. */ export declare const DEFAULT_COUNTDOWN_LABELS: CountdownLabels; /** * Default labels in English. */ export declare const DEFAULT_COUNTDOWN_LABELS_EN: CountdownLabels; /** * Metadata for the countdown component. */ export interface CountdownMetadata { /** Target date/time to count down to */ targetDate: Date | string | number; /** Display format */ format?: 'full' | 'compact' | 'minimal' | 'digital'; /** Show days */ showDays?: boolean; /** Show hours */ showHours?: boolean; /** Show minutes */ showMinutes?: boolean; /** Show seconds */ showSeconds?: boolean; /** Show labels below numbers */ showLabels?: boolean; /** Show separators between units */ showSeparators?: boolean; /** Separator character (default: ':') */ separator?: string; /** Pad numbers with zeros */ padNumbers?: boolean; /** Custom labels for time units */ labels?: CountdownLabels; /** Message to show when expired */ expiredMessage?: string; /** Show expired message or hide component */ showExpiredMessage?: boolean; /** Component color */ color?: Color; /** Size variant */ size?: 'small' | 'medium' | 'large'; /** Custom CSS class */ cssClass?: string; /** Auto-start countdown */ autoStart?: boolean; /** Update interval in ms (default: 1000) */ updateInterval?: number; /** Content key for expired message */ expiredMessageContentKey?: string; /** Content class for reactive content */ contentClass?: string; } /** * Event emitted when countdown completes. */ export interface CountdownCompleteEvent { /** Target date that was reached */ targetDate: Date; /** Timestamp when completed */ completedAt: Date; } /** * Event emitted on each countdown tick. */ export interface CountdownTickEvent { /** Current time breakdown */ time: CountdownTime; /** Percentage of time elapsed (if start time known) */ percentageElapsed?: number; }