import { default as React } from 'react'; export type ClockMode = 'realtime' | 'offset' | 'frozen'; export type ClockCatchUp = 'fire-once' | 'skip'; export interface ClockConfig { initialTime?: string; timezone?: string; mode?: ClockMode; rate?: number; editable?: boolean; catchUp?: ClockCatchUp; } export interface ClockSnapshot { mode: ClockMode; timezone?: string; rate: number; editable: boolean; catchUp: ClockCatchUp; virtualEpoch: number; realEpoch: number; } export interface XPClockApi { now: () => string; nowMs: () => number; set: (iso: string, source?: 'user' | 'host' | 'snapshot') => void; advance: (ms: number, source?: 'user' | 'host') => void; reset: () => void; getSnapshot: () => ClockSnapshot; loadSnapshot: (snapshot: ClockSnapshot) => void; subscribe: (listener: () => void) => () => void; mode: ClockMode; timezone?: string; rate: number; editable: boolean; catchUp: ClockCatchUp; } declare const createInitialSnapshot: (config: ClockConfig, realNow?: number) => ClockSnapshot; declare const valueAt: (state: ClockSnapshot, realNow?: number) => number; export interface ClockProviderProps { children: React.ReactNode; config?: ClockConfig; } export declare const ClockProvider: React.FC; export declare const useClock: () => XPClockApi; export { createInitialSnapshot, valueAt };