import { default as React } from 'react'; import { XPEvent } from '../events'; export interface ScheduleOptions { /** Stable id — reusing one replaces the existing schedule. Auto-generated if omitted. */ id?: string; /** Fire this many ms from now. */ delayMs?: number; /** Fire at this epoch-ms deadline (takes precedence over delayMs). */ at?: number; /** Event to emit on fire; defaults to `{ type: 'time:fire', id }`. */ event?: XPEvent; } export interface SchedulerApi { /** Register (or replace) a schedule; returns its id. */ schedule: (options: ScheduleOptions) => string; /** Cancel a pending schedule by id. */ cancelSchedule: (id: string) => void; /** Ids of all pending schedules. */ listSchedules: () => string[]; } /** Imperative access to the timer subsystem. Falls back to a no-op outside a provider. */ export declare const useScheduler: () => SchedulerApi; export interface SchedulerProviderProps { children: React.ReactNode; /** Inactivity threshold (ms) before `user:idle` fires. Default 60000. */ idleThresholdMs?: number; /** Play the classic hourly chime on `time:hour`. Off by default (culture/host opt-in). */ hourlyChime?: boolean; } export declare const SchedulerProvider: React.FC;