/** * Structured error reporting for the .gg pipeline. * * Every error carries the originating source location (file + 1-based * line) and the source kind ('dsl' | 'json' | 'check') so messages can * cite the exact spot where the user wrote the offending construct. */ export type GgErrorSource = 'dsl' | 'json' | 'check' | 'icon'; export interface GgError { message: string; line: number; source: GgErrorSource; /** The original line text (for `at file:line (snippet)` rendering) */ snippet?: string; /** Optional second location for cross-cutting issues (e.g. duplicate IDs) */ related?: { line: number; source: GgErrorSource; snippet?: string; }; } export declare function formatError(err: GgError, filename?: string): string; //# sourceMappingURL=errors.d.ts.map