import { type CapturingPattern } from './parsePattern.js'; import { TemporalFmtError } from './errors.js'; import { type NumberingParseOptions } from './numbering.js'; /** * Parses `input` against `formatStr` and builds the real Temporal value it * describes: a `Temporal.PlainDate`, `PlainTime`, `PlainDateTime`, or * `ZonedDateTime` depending on which tokens are present. * * Returns `unknown` — this package has no ambient `Temporal` types to return * a real one against. * * `options.locale` picks the calendar the result is built in. Pass a locale * tag with a `-u-ca-` extension (e.g. `'en-u-ca-hebrew'`) to parse into a * non-Gregorian calendar. * * @throws if `input` doesn't match `formatStr`'s shape at all * @throws if it matches the shape but describes an impossible date (e.g. Feb * 30) or self-contradictory data (e.g. a weekday name that doesn't match the * actual date) * * @example * parse('yyyy-MM-dd HH:mm', '2026-08-04 15:45') // Temporal.PlainDateTime * parse('yyyy-MM', '2026-08-04T15:45:30') // throws — shape doesn't match * parse('yyyy-MM-dd', '2026-02-30') // throws — not a real date */ export declare function parse(formatStr: string, input: string, options?: NumberingParseOptions): unknown | undefined; export type SafeParseResult = { ok: true; value: unknown; } | { ok: false; error: TemporalFmtError; }; export declare function safeParse(formatStr: string, input: string, options?: NumberingParseOptions): SafeParseResult; export declare function tryParse(formatStr: string, input: string, options?: NumberingParseOptions): unknown | undefined; export interface ParsedPart { token: string; raw: string; field?: string; position: number; } export declare function parseToParts(formatStr: string, input: string, options?: NumberingParseOptions): ParsedPart[]; export interface CompiledParser { parse(input: string, options?: NumberingParseOptions): unknown; safeParse(input: string, options?: NumberingParseOptions): SafeParseResult; tryParse(input: string, options?: NumberingParseOptions): unknown | undefined; parseToParts(input: string, options?: NumberingParseOptions): ParsedPart[]; readonly formatStr: string; readonly pattern: CapturingPattern; } export declare function compileParser(formatStr: string, options?: NumberingParseOptions): CompiledParser;