import { default as React } from 'react'; export type ClockFormat = "12h" | "24h" | "iso" | "met"; export type DateFormat = "iso" | "julian" | "gregorian" | "none"; export type TimeSource = "realtime" | "simulation" | "custom"; /** * Timer configuration for AOS/LOS countdown/up timers */ export interface TimerConfig { /** Timer label (e.g., "AOS", "LOS", "MET") */ label: string; /** Target timestamp (for countdown) or start timestamp (for countup) */ timestamp: Date; /** Timer direction: 'countdown' counts to target, 'countup' counts from start */ direction: "countdown" | "countup"; /** Optional status color */ status?: "normal" | "caution" | "critical" | "standby"; /** Show days in timer format */ showDays?: boolean; } /** * Simulation time configuration */ export interface SimulationTimeConfig { /** Simulation epoch (t=0) as Date or ISO string */ epoch: Date | string; /** Current simulation time offset in seconds from epoch */ elapsedSeconds?: number; /** Time scale factor (1 = realtime, 2 = 2x speed, etc.) */ timeScale?: number; /** Whether simulation is running */ isRunning?: boolean; /** Callback to get current simulation time */ getCurrentTime?: () => Date; } export interface MissionClockProps { /** Clock format */ format?: ClockFormat; /** Timezone label to display */ timezone?: string; /** Hide seconds */ hideSeconds?: boolean; /** Small size variant */ small?: boolean; /** Show date */ showDate?: boolean; /** Date format (iso, julian, gregorian) */ dateFormat?: DateFormat; /** Custom className */ className?: string; /** Click handler */ onClick?: () => void; /** AOS timer - countdown/up to Acquisition of Signal */ aosTimer?: TimerConfig | Date; /** LOS timer - countdown/up to Loss of Signal */ losTimer?: TimerConfig | Date; /** Additional custom timers */ customTimers?: TimerConfig[]; /** Time source: realtime, simulation, or custom */ timeSource?: TimeSource; /** Simulation time configuration (for timeSource='simulation') */ simulationConfig?: SimulationTimeConfig; /** Custom time provider (for timeSource='custom') */ customTime?: Date | (() => Date); /** Mission start time for MET display */ missionStart?: Date | string; /** Show MET (Mission Elapsed Time) instead of wall clock */ showMET?: boolean; /** Update interval in milliseconds (default: 1000) */ updateInterval?: number; /** Compact mode - single line display */ compact?: boolean; /** Show milliseconds */ showMilliseconds?: boolean; } /** * MissionClock - Advanced mission time display for space operations * * Supports real-time clock, simulation time, MET (Mission Elapsed Time), * and AOS/LOS timers following Astro UX Design System patterns. * * @example * ```tsx * // Basic clock * * * // With AOS/LOS timers * * * // Simulation time * * * // Mission Elapsed Time * * * // Julian day format * * ``` */ export declare const MissionClock: React.NamedExoticComponent; /** * SimpleTimer - Standalone countdown/up timer */ export interface SimpleTimerProps { /** Timer label */ label: string; /** Target/start timestamp */ timestamp: Date; /** Timer direction */ direction?: "countdown" | "countup"; /** Status color */ status?: "normal" | "caution" | "critical" | "standby"; /** Show days */ showDays?: boolean; /** Custom className */ className?: string; } export declare const SimpleTimer: React.NamedExoticComponent; /** * MissionElapsedTime - Dedicated MET display */ export interface MissionElapsedTimeProps { /** Mission launch/start time */ launchTime: Date | string; /** Show milliseconds */ showMilliseconds?: boolean; /** Custom className */ className?: string; /** Small variant */ small?: boolean; } export declare const MissionElapsedTime: React.NamedExoticComponent; /** * SimulationClock - Clock driven by simulation time */ export interface SimulationClockProps { /** Simulation epoch */ epoch: Date | string; /** Elapsed seconds from epoch */ elapsedSeconds?: number; /** Time scale factor */ timeScale?: number; /** Whether simulation is running */ isRunning?: boolean; /** Show date */ showDate?: boolean; /** Date format */ dateFormat?: DateFormat; /** Custom className */ className?: string; /** Small variant */ small?: boolean; } export declare const SimulationClock: React.NamedExoticComponent; export default MissionClock;