interface TemporalFactory { from(fields: Record, options?: { overflow?: 'constrain' | 'reject'; disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject'; offset?: 'use' | 'ignore' | 'prefer' | 'reject'; }): unknown; compare?(one: unknown, two: unknown): number; } interface InstantFactory { from(iso: string): unknown; fromEpochMilliseconds(ms: number): unknown; fromEpochMicroseconds(µs: number): unknown; fromEpochNanoseconds(ns: bigint): unknown; } interface DurationFactory extends TemporalFactory { compare?(one: unknown, two: unknown): number; prototype?: { round(options: unknown): unknown; }; } export interface TemporalNamespace { PlainDate: TemporalFactory; PlainTime: TemporalFactory; PlainDateTime: TemporalFactory; ZonedDateTime: TemporalFactory; Instant?: InstantFactory; Duration?: DurationFactory; PlainYearMonth?: TemporalFactory; PlainMonthDay?: TemporalFactory; } export declare function subscribeToTemporalChanges(listener: () => void): void; /** * Explicitly hand temporal-fmt the Temporal implementation to use, instead * of relying on a global `Temporal`. Call this once, before your first * `format()`/`parse()`/`parseISO()`/etc. * * Call with no argument (or `undefined`) to clear the override and fall * back to `globalThis.Temporal` again. * * @example * import { Temporal } from 'temporal-polyfill'; * import { setTemporal } from 'temporal-fmt'; * setTemporal(Temporal); */ export declare function setTemporal(temporal?: TemporalNamespace): void; export declare function getTemporal(): TemporalNamespace; export {};