astro-ghostcms/.pnpm-store/v3/files/0d/5e50a4794bf6ebd07a0bd383c9e...

23 lines
733 B
Plaintext

/**
* Tracks newlines during parsing in order to provide an efficient API for
* determining the one-indexed `{ line, col }` position for any offset
* within the input.
*/
export declare class LineCounter {
lineStarts: number[];
/**
* Should be called in ascending order. Otherwise, call
* `lineCounter.lineStarts.sort()` before calling `linePos()`.
*/
addNewLine: (offset: number) => number;
/**
* Performs a binary search and returns the 1-indexed { line, col }
* position of `offset`. If `line === 0`, `addNewLine` has never been
* called or `offset` is before the first known newline.
*/
linePos: (offset: number) => {
line: number;
col: number;
};
}