/** * Source Location Types * Tracks positions in MEL source code for error reporting */ /** * A position in source code (1-based line/column) */ export interface Position { /** 1-based line number */ line: number; /** 1-based column number */ column: number; /** 0-based byte offset from start of source */ offset: number; } /** * A span in source code (start to end) */ export interface SourceLocation { start: Position; end: Position; /** Optional source file path */ source?: string; } /** * Create a position */ export declare function createPosition(line: number, column: number, offset: number): Position; /** * Create a source location from two positions */ export declare function createLocation(start: Position, end: Position, source?: string): SourceLocation; /** * Create a zero-width location at a position */ export declare function createPointLocation(pos: Position, source?: string): SourceLocation; /** * Merge two locations into one spanning both */ export declare function mergeLocations(a: SourceLocation, b: SourceLocation): SourceLocation;