import type { Temporal } from "@js-temporal/polyfill"; type TemporalCountdownPrecision = "second" | "minute"; type TemporalCountdownOptions = { /** * The target instant to count down to. * Accepts a Temporal.Instant, an ISO 8601 string, or epoch milliseconds. */ target: Temporal.Instant | string | number; /** * How often the remaining duration updates. * @default "second" */ precision?: TemporalCountdownPrecision; }; type TemporalCountdownResult = { /** Remaining duration until the target. Zero when the target has passed. */ remaining: Temporal.Duration; /** Whether the target instant has been reached or passed. */ done: boolean; }; /** * useTemporalCountdown * Returns the remaining duration until a target instant, ticking at * the requested precision boundary. Stops automatically once the * target is reached. * * On the server this hook returns null so hydration remains deterministic. * Returns null while the Temporal polyfill is loading. * * @param options Configuration with a target instant and optional precision * @see https://rooks.vercel.app/docs/hooks/useTemporalCountdown */ declare function useTemporalCountdown(options: TemporalCountdownOptions): TemporalCountdownResult | null; export { useTemporalCountdown }; export type { TemporalCountdownOptions, TemporalCountdownPrecision, TemporalCountdownResult, };