import { type SourceLine } from "./lines.js"; export type DirectiveKind = "machine" | "context" | "event" | "guard" | "action" | "delay"; /** Source position of one body line: the line number and the 1-based column where the body text starts. */ export interface BodyLinePosition { line: number; column: number; } /** A directive body with the source position of each of its lines (for mapping syntax diagnostics back). */ export interface BodySource { text: string; /** 1-based line of the directive itself. */ line: number; /** One entry per line of `text`. */ lines: BodyLinePosition[]; } export interface DirectiveSet { machine: { id: string; line: number; } | null; contextType: BodySource | null; contextInitial: BodySource | null; events: Map; guards: Map; actions: Map; delays: Map; } /** Collects every directive of the text; throws on the first malformed or duplicate one. */ export declare function parseDirectives(lines: SourceLine[]): DirectiveSet;