/** * Time Manager for Orbital Simulations * * Manages simulation time, time scaling, and animation loop for orbital mechanics. */ export type TimeUpdateCallback = (julianDate: number, realDate: Date) => void; export declare class TimeManager { private julianDate; private timeScale; private isPaused; private lastUpdateTime; private callbacks; private intervalId; constructor(startDate?: Date); /** * Start the time simulation loop */ start(): void; /** * Stop the time simulation loop */ stop(): void; /** * Update tick */ private update; /** * Advance simulation time * * @param deltaMs - Milliseconds elapsed in real time */ advance(deltaMs: number): void; /** * Pause time progression */ pause(): void; /** * Resume time progression */ play(): void; /** * Toggle pause/play */ togglePause(): void; /** * Set time scale (speed multiplier) * * @param scale - Time scale (1 = real-time, 10 = 10x speed, etc.) */ setTimeScale(scale: number): void; /** * Get current time scale */ getTimeScale(): number; /** * Set simulation date * * @param date - JavaScript Date object */ setDate(date: Date): void; /** * Get current simulation date as Julian date */ getJulianDate(): number; /** * Get current simulation date as JavaScript Date */ getDate(): Date; /** * Check if time is paused */ getIsPaused(): boolean; /** * Register a callback for time updates * * @param callback - Function to call when time updates */ onUpdate(callback: TimeUpdateCallback): void; /** * Unregister a time update callback * * @param callback - Callback function to remove */ offUpdate(callback: TimeUpdateCallback): void; /** * Notify all registered callbacks of time update */ private notifyCallbacks; /** * Get time state for serialization */ getState(): { julianDate: number; timeScale: number; isPaused: boolean; date: string; }; } //# sourceMappingURL=TimeManager.d.ts.map