export declare const digits: (s: string) => string; export declare function maskDateEU(text: string): string; export declare function maskTimeHM(text: string): string; export declare function maskSingle(text: string, enableTime: boolean): string; export declare function maskRange(text: string, _enableTime: boolean): string; export declare const pad2: (n: number) => string; export type UtcIsoString = string; export type DateOnlyString = string; export declare function isUtcIsoString(v: unknown): v is UtcIsoString; export declare function isDateOnlyString(v: unknown): v is DateOnlyString; export declare function utcMillisFromIso(iso: UtcIsoString): number; /** Convert a local DateTime to a UTC ISO string (Z). */ export declare function isoFromLocalDate(dLocal: Date): UtcIsoString; /** * Build a *local* Date from y/m/d/hh/mm and return UTC ISO string (Z). * This keeps the UI meaning "local wall time", while emitting a stable UTC instant. * * DST NOTE: * If the requested local wall time does not exist (spring-forward), JS will auto-correct. * We detect that and return null so caller can handle it (e.g., show validation error). */ export declare function isoFromLocalParts(y: number, m0: number, // 0-based d: number, hh?: number, mm?: number): UtcIsoString | null; /** For anchoring the calendar safely from a UTC ISO string. */ export declare function localDateFromIso(iso: UtcIsoString): Date | null; /** Date-only: build 'YYYY-MM-DD' from local parts */ export declare function dateOnlyFromLocalParts(y: number, m0: number, d: number): DateOnlyString; /** Parse 'YYYY-MM-DD' into a local Date at midnight */ export declare function localDateFromDateOnly(s: DateOnlyString): Date | null; /** Compare date-only strings by UTC date-only time (stable ordering) */ export declare function compareDateOnly(a: DateOnlyString, b: DateOnlyString): number; export declare function toMaskedFromDate(d: Date, enableTime: boolean): string; export declare function parseLooseDateOrDateTime(input: string): Date | null; export declare function parseLooseRange(input: string): { start: Date; end: Date; } | null;