import { DateTime, Zone } from "luxon"; import { Path, IdedEvents, Timeline, Range, EventGroup, Eventy, Event } from "./Types.js"; import { Caches } from "./Cache.js"; export interface Foldable { endIndex: number; type: "comment" | "section" | "header" | "event"; startLine: number; startIndex?: number; foldStartIndex?: number; } export interface DocumentMessage { type: "error" | "warning"; message: string; } export type ParseMessage = DocumentMessage & { pos: [number, number]; }; export declare class ParsingContext { now: DateTime; events: EventGroup; head?: Eventy; tail?: Event; currentPath: Path; ids: IdedEvents; title: string | undefined; description: string | undefined; paletteIndex: number; earliest: DateTime | undefined; latest: DateTime | undefined; maxDuration: number | undefined; foldables: { [F in number | string]: Foldable; }; foldableSections: Foldable[]; ranges: Range[]; header: Record; parseMessages: ParseMessage[]; documentMessages: DocumentMessage[]; cache?: Caches; sectionLevels: number[]; constructor(now?: DateTime | string, cache?: Caches, getPriorEvent?: (c: ParsingContext) => Event | undefined); get zonedNow(): DateTime; get timezone(): Zone; currentFoldableSection(): Foldable; currentFoldableComment(): Foldable; startFoldableSection(f: Foldable): void; startFoldable(f: Foldable): void; finishFoldableSection(line: number, endIndex: number): void; finishFoldableComment(lineNumber: number): void; push(node: Eventy): number[]; endCurrentGroup(to: number, lineTo: { line: number; index: number; }): void; toTimeline(): Timeline & { parseMessages: ParseMessage[]; }; priorEvent(): Event | undefined; parentZone(): Zone; priorEventToDateTime(): DateTime | DateTime | undefined; priorEventFromDateTime(): DateTime | DateTime | undefined; getById(id: string): Eventy | undefined; } export declare function timezoneFromProperties(properties: [string, any][] | Record, cache?: Caches): Zone | undefined;