export type AccessRecord = { /** Fully-resolved chain segments after iteration prefix lifting. */ segments: string[]; /** Operation performed at this site. */ role: "read" | "write" | "delete"; /** Compact text of the nearest enclosing if/conditional predicate, when assignment. */ gatedBy?: string; /** When the chain root resolves to a session-storage source. */ sessionKey?: string; /** Source offset for snippet capture. */ loc: { start: number; end: number; }; }; export type AnalyzedCode = { records: AccessRecord[]; /** Distinct session keys read in this source, regardless of where they appear. */ sessionKeys: string[]; }; export declare function analyzeSource(src: string): AnalyzedCode; export declare function clearAnalyzerCache(): void; /** * Returns the source span around an offset, with a couple of context lines either side. */ export declare function captureSnippet(src: string, start: number): string; /** snake_case ↔ camelCase utility for matching gap segments. */ export declare function caseVariants(segs: string[]): string[][]; /** Suffix match, ignoring `[*]` placeholders and numeric segments in the haystack. */ export declare function suffixMatches(needle: string[], haystack: string[]): boolean; //# sourceMappingURL=code-analyzer.d.ts.map