UNPKG

datezone

Version:

A lightweight and comprehensive date and timeZone utility library for JavaScript.

49 lines 1.63 kB
import { type TimeZone } from "./timezone.pub.js"; type OffsetCacheEntry = { hourStart: number; offset: number; }; type OffsetPeriod = { start: number; end: number; offset: number; }; export declare const offsetCache: { checkedLocalDST: boolean; fixedOffset: Map<TimeZone | null, number>; hotCache: Map<string, { offset: number; validUntil: number; }>; lastLocalHourStart: number | null; lastLocalOffset: number | null; localFixedOffset: number | null; perHourOffset: Map<TimeZone | null, OffsetCacheEntry>; }; /** * High-performance LRU cache with O(1) operations */ declare class FastLRUOffsetPeriodCache { private cache; private head; private tail; private size; constructor(); private addToHead; private removeNode; private moveToHead; private popTail; get(tz: TimeZone): OffsetPeriod[] | undefined; set(tz: TimeZone, periods: OffsetPeriod[]): void; has(tz: TimeZone): boolean; delete(tz: TimeZone): void; } export declare const timeZoneOffsetPeriods: FastLRUOffsetPeriodCache; export declare const DST_WINDOW_MS: number; export declare function getYearStartEnd(year: number): [number, number]; export declare function computeOffsetPeriods(tz: TimeZone, year: number): OffsetPeriod[]; export declare function ensureOffsetPeriods(tz: TimeZone, year: number): void; export declare function getCachedOffsetDST(ts: number, tz: TimeZone): number | null; export declare function calcOffset(ts: number, tz: TimeZone | null, bypassCache?: boolean): number; export {}; //# sourceMappingURL=offset.internal.d.ts.map