import { TimerConfig } from '../astro/MissionClock'; export interface AccessPass { /** Start time (AOS) */ startTime: Date; /** End time (LOS) */ endTime: Date; /** Duration in seconds */ duration: number; /** Maximum elevation during pass (degrees) */ maxElevation: number; /** Time of maximum elevation (TCA) */ tcaTime?: Date; /** Ground station ID */ groundStationId: string; /** Ground station name */ groundStationName: string; } export interface AccessWindowsState { /** Currently active pass (if any) */ currentPass: AccessPass | null; /** Next upcoming pass */ nextPass: AccessPass | null; /** All upcoming passes */ upcomingPasses: AccessPass[]; /** Whether currently in a pass */ isInPass: boolean; /** Current elevation (degrees, if in pass) */ currentElevation: number | null; /** Current azimuth (degrees, if in pass) */ currentAzimuth: number | null; /** Time until next AOS (seconds) */ timeToAOS: number | null; /** Time until LOS (seconds, if in pass) */ timeToLOS: number | null; /** Timer config for AOS (for MissionClock) */ aosTimer: TimerConfig | null; /** Timer config for LOS (for MissionClock) */ losTimer: TimerConfig | null; /** Timer config for TCA (for MissionClock) */ tcaTimer: TimerConfig | null; } export interface UseAccessWindowsOptions { /** Update interval in milliseconds (default: 1000) */ updateInterval?: number; /** * Access windows to track. Provide pre-computed passes (from your own * orbital propagator, SGP4, demo data, etc.). Pass `[]` or omit to * yield an empty/idle state. */ windows?: AccessPass[]; /** * @deprecated Use `windows`. Old alias kept for one minor for migration. */ manualWindows?: AccessPass[]; } export declare function useAccessWindows(options?: UseAccessWindowsOptions): AccessWindowsState; /** * Generate demo access windows for testing */ export declare function createDemoAccessPasses(count?: number): AccessPass[]; export default useAccessWindows;