//#region src/schema/literals.d.ts /** * Shared enumerations for the timeline JSON contract. * * Kept dependency-free so both the embed validator and the Zod schema can * import the same values — types are derived from the arrays, not duplicated. */ declare const PRECISIONS: readonly ["year", "month", "day", "datetime"]; declare const SOURCE_TYPES: readonly ["manual", "text", "json", "video", "audio"]; declare const VISIBILITIES: readonly ["public", "unlisted", "private"]; type Precision = (typeof PRECISIONS)[number]; type SourceType = (typeof SOURCE_TYPES)[number]; type Visibility = (typeof VISIBILITIES)[number]; //#endregion //#region src/schema/types.d.ts /** * Fuzzy-date grammar (v1): * * start/end ::= YYYY | YYYY-MM | YYYY-MM-DD | YYYY-MM-DDTHH:mm[:ss][Z|±HH:MM] * * - `precision` must match the granularity of `start` (validation error otherwise). * - `end` is optional and may use a different granularity than `start`. * - Date-only values are UTC calendar dates; naive datetimes are treated as UTC. * - Every value resolves to a half-open interval `[earliest, latest)`; markers sit at * the midpoint, uncertainty bands span the interval. * - `circa` is a rendering affordance ("~1943"); it does not widen the interval in v1. * - BCE dates (and ISO year 0000, which means 1 BCE) are rejected in v1. */ interface TimarroDate { start: string; end?: string | undefined; precision: Precision; circa?: boolean | undefined; } interface TimarroEvent { id: string; title: string; date: TimarroDate; description?: string | undefined; /** Free-text people/places/orgs (v1 — no normalized entity table yet). */ entities?: string[] | undefined; /** Only http(s) URLs are rendered; others are dropped at render time. */ mediaUrls?: string[] | undefined; /** Pointer back into the original source (timestamp, page, …) — shown as plain text. */ sourceRef?: string | undefined; /** * Optional per-event accent (any CSS color: `#d6451b`, `rebeccapurple`, * `rgb(…)`, …). Overrides `--timarro-accent` for this event's marker, range * band, and uncertainty band. Invalid values are ignored at render time. */ color?: string | undefined; /** Sort tie-break for events with identical start instants (default 0). */ order?: number | undefined; timelineId?: string | undefined; revision?: number | undefined; } interface TimelineMeta { id: string; title: string; description?: string | undefined; coverImageUrl?: string | undefined; createdBy?: string | undefined; visibility?: Visibility | undefined; sourceTypes?: SourceType[] | undefined; } interface TimarroTimelineData { timeline: TimelineMeta; events: TimarroEvent[]; } //#endregion export { PRECISIONS as a, SourceType as c, TimelineMeta as i, VISIBILITIES as l, TimarroEvent as n, Precision as o, TimarroTimelineData as r, SOURCE_TYPES as s, TimarroDate as t, Visibility as u }; //# sourceMappingURL=types-CGDckUqn.d.ts.map