/** Pure line-oriented search for the pager (PICK-003, V2-074). */ export interface PagerMatch { readonly line: number; readonly column: number; readonly length: number; } export declare function findPagerMatches(lines: readonly string[], query: string): PagerMatch[]; /** Wraps forward; returns -1 when there are no matches to navigate. */ export declare function nextPagerMatch(matches: readonly PagerMatch[], current: number): number; /** Wraps backward; returns -1 when there are no matches to navigate. */ export declare function prevPagerMatch(matches: readonly PagerMatch[], current: number): number; /** One painted run inside a pager body line. */ export interface PagerLineSegment { readonly text: string; /** Inactive hit vs the currently selected hit (Enter/n/N). */ readonly kind: "plain" | "match" | "active"; } /** * Split a body line into plain/match/active segments for reverse-video paint. * Overlapping ranges are not expected (non-overlapping indexOf walk). */ export declare function segmentPagerLine(line: string, lineIndex: number, matches: readonly PagerMatch[], activeMatchIndex: number): PagerLineSegment[];