export { detectBrowserTimezone, detectNodeTimezone, detectServerTimezone, detectTimezone, getUserTimezone, isValidTimezone, listSupportedTimezones, resolveTimezoneFromValue } from './detection.js'; export { isValidIanaTimezone, normalizeTimezone, safeTimezone, sanitizeTimezoneForDB } from './normalization.js'; import * as _multisystemsuite_timezone_engine_shared_types from '@multisystemsuite/timezone-engine-shared-types'; import { AliasResolveResult, ClockDriftResult, ServerClientSyncPayload, TimezoneEngineConfig, FormatDateOptions, ConvertTimezoneOptions, TenantTimezoneConfig, UTCStorageRecord } from '@multisystemsuite/timezone-engine-shared-types'; import { ConfigManager, PluginManager, TimezoneCache } from '@multisystemsuite/timezone-engine-utils'; export { convertToTimezone, formatDateForSite, formatDateWithPattern, getFormattedDateTime } from './site.js'; export { convertTimezone, convertTimezoneCached, detectDST, fromUTC, getTimezoneOffsetMinutes, getUtcOffset, toUTC } from './conversion.js'; export { formatDate, formatDateCached, formatRelativeDate, formatRelativeTime, formatTime, getLocaleDateFormat, getLocaleTimeFormat } from './formatting.js'; export { createLiveClockUpdater, getDefaultWorldClock, getFullWorldClock, getWorldClock, getWorldClockTime } from './world-clock.js'; export { compareMultipleTimezones, compareTimezones, findCommonWorkingHours, timezoneSafeCompare } from './comparison.js'; /** Strict IANA timezone validation — rejects ambiguous abbreviations and invalid aliases */ declare function validateTimezone(timeZone: string | null | undefined): boolean; /** Normalise and validate with fallback — enterprise-safe default */ declare function safeTimezoneFallback(timeZone: string | null | undefined, fallback?: string): string; /** Abbreviations that map to multiple regions — never auto-resolve */ declare const AMBIGUOUS_TIMEZONE_ABBREVIATIONS: Set; /** * Resolve known timezone aliases to canonical IANA ids. * Rejects ambiguous abbreviations (IST, CST, etc.) and invalid legacy names. */ declare function aliasTimezoneResolver(input: string | null | undefined): AliasResolveResult; /** Detect client/server clock drift for distributed sync scenarios */ declare function detectClockDrift(clientTime: Date | string | number, serverTime?: Date | string | number, toleranceMs?: number): ClockDriftResult; /** Synchronize server and client timezone context with drift detection */ declare function syncServerTime(options: { clientTimezone: string; serverTimezone?: string; clientTime?: Date | string | number; toleranceMs?: number; }): ServerClientSyncPayload & { drift: ClockDriftResult; }; /** Enterprise timezone engine with config, cache, and plugin support */ declare class TimezoneEngine { readonly config: ConfigManager; readonly plugins: PluginManager; readonly cache: TimezoneCache; constructor(config?: TimezoneEngineConfig); formatDate(date: Date | string | number, options?: FormatDateOptions): string; convertTimezone(options: ConvertTimezoneOptions): Date; getCountryTimezones(countryCode: string): _multisystemsuite_timezone_engine_shared_types.CountryTimezoneMapping | undefined; getCityTimezone(city: string): _multisystemsuite_timezone_engine_shared_types.CityTimezoneMapping | undefined; getTimezoneInfo(timezone: string): _multisystemsuite_timezone_engine_shared_types.TimezoneInfo | undefined; enableLogging(): void; } /** Create a configured timezone engine instance */ declare function createTimezoneEngine(config?: TimezoneEngineConfig): TimezoneEngine; /** Default singleton engine instance */ declare const defaultEngine: TimezoneEngine; /** Multi-tenant timezone registry for SaaS / HRMS / ERP isolation */ declare class TenantTimezoneRegistry { private readonly tenants; private readonly engines; register(config: TenantTimezoneConfig): void; unregister(tenantId: string): void; getConfig(tenantId: string): TenantTimezoneConfig | undefined; getTimezone(tenantId: string, fallback?: string): string; getLocale(tenantId: string, fallback?: string): string; /** Create or retrieve an isolated engine instance per tenant */ getEngine(tenantId: string, config?: TimezoneEngineConfig): TimezoneEngine; listTenants(): string[]; } /** Create a tenant-scoped timezone engine with isolated configuration */ declare function createTenantTimezoneEngine(tenantId: string, timezone: string, config?: TimezoneEngineConfig): TimezoneEngine; /** Default singleton tenant registry */ declare const defaultTenantRegistry: TenantTimezoneRegistry; /** Normalize and persist timestamps in UTC with source timezone metadata */ declare function ensureUTCStorage(date: Date | string | number, sourceTimezone: string): UTCStorageRecord; /** Rehydrate a UTC storage record to a Date instance */ declare function parseUTCStorage(record: UTCStorageRecord): Date; export { AMBIGUOUS_TIMEZONE_ABBREVIATIONS, TenantTimezoneRegistry, TimezoneEngine, aliasTimezoneResolver, createTenantTimezoneEngine, createTimezoneEngine, defaultEngine, defaultTenantRegistry, detectClockDrift, ensureUTCStorage, parseUTCStorage, safeTimezoneFallback, syncServerTime, validateTimezone };