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;
}
