import type { Result } from './result.js'; /** * Branded ISO-8601 UTC datetime string ("2026-04-01T00:00:00Z"). Constructed * only via `parseIsoDateTime` (or the unsafe escape hatch); every Graph URL * built from a calendar-window parameter accepts this type so an unvalidated * `string` can't slip through. * * Audit Hervé-session §C: the previous calendar commands accepted any * `z.string().min(1)`, so the LLM had to compute "last week" → ISO by hand. * `parseIsoDateTime` turns "7d" / "monday" / "today" / "2026-04-01" / a strict * ISO timestamp into the canonical ISO form, so the URL builders stay * unchanged. */ export type IsoDateTime = string & { readonly __brand: 'IsoDateTime'; }; export declare const isoDateTimeUnsafe: (raw: string) => IsoDateTime; export type DateParseError = { readonly type: 'invalid_format'; readonly input: string; readonly hint: string; }; /** * Parse a free-form date input into the canonical `2026-04-01T00:00:00Z` * shape (`IsoDateTime`). Returns `err(invalid_format)` with a multi-line * hint listing every accepted shape — surfaces directly through the CLI's * validation envelope so an LLM gets all the alternatives without an extra * round-trip. See `HINT` above for the full list. */ export declare const parseIsoDateTime: (rawInput: string, now?: Date) => Result;