import { DateMode, FieldDescriptor } from './types.js'; /** ISO day -> local Date at midnight, or null when malformed / not a real day. */ export declare function parseIsoDate(iso: unknown): Date | null; export declare function formatIsoDate(date: Date): string; /** ISO local datetime ('2026-04-13T14:30', seconds optional) -> local Date, or null. */ export declare function parseIsoDateTime(iso: unknown): Date | null; /** Local Date -> ISO local datetime, minute precision (no seconds, no offset). */ export declare function formatIsoDateTime(date: Date): string; export declare const dateModeOf: (field: FieldDescriptor) => DateMode; /** * Every ISO day a date value holds, whatever the mode: a single string, a * `[start, end]` range (both ends only — the interior is implied) or a list. * Non-string entries are dropped; shape errors are the validator's job. */ export declare function isoDaysOf(value: unknown): string[]; /** * One `disabled_dates` entry: an ISO day or an inclusive ISO interval * `start/end`. Returns `[from, to]` (from === to for a single day) or null. */ export declare function parseDisabledEntry(entry: string): [Date, Date] | null; /** * True when `iso` falls on a disabled weekday or inside a disabled date / * interval of the descriptor. Malformed entries never disable anything. * `disabled_dates` / `disabled_weekdays` are calendar-day rules, so an ISO * datetime (`enable_time` fields) is checked on its date part only. */ export declare function isDateDisabled(field: FieldDescriptor, iso: string): boolean; /** * Days between a range's ends (inclusive) that a picker would step over — * so a range can be rejected when a holiday sits INSIDE it. Capped so a * hostile `["1900-01-01","2999-12-31"]` submission cannot spin the server; * beyond the cap only the ends are checked. */ export declare function rangeInteriorDays(start: string, end: string, cap?: number): string[];