import type { CouplingEdge } from "./dataStateCoupling.js"; /** Extract concatenated comment text from source (the spans' inner slices). */ export declare function extractCommentText(source: string, path: string): string; /** * The complement of `extractCommentText`: the source with every comment span * removed (markers included) — the revealed channel's comment-blind feed. Shares * the span scanner, so the two views partition the file identically. Blank-line * runs left behind by removed comments are collapsed to one so the stripped view * doesn't leak comment POSITIONS as blank-line negative space. */ export declare function stripCommentText(source: string, path: string): string; export interface CommentDecompositionResult { /** Intent-declared coupling edges from comment cross-references (undirected). */ edges: CouplingEdge[]; /** Number of files whose source was read + scanned. */ scannedFiles: number; } export interface CommentDecompositionParams { root: string; /** In-scope repo-relative file paths. */ files: string[]; /** * Injectable file reader (absolute path → text | undefined). Defaults to a * size-capped node:fs read; tests supply a map-backed reader. */ readFileText?: (absPath: string) => Promise; /** Skip files larger than this many bytes when reading (default 512 KiB). */ maxBytes?: number; } /** * Derive intent-declared coupling edges from comment cross-references across the * in-scope files. For each file, its comment text is scanned for the distinctive * reference tokens of OTHER files; a match adds an undirected edge. Deterministic: * files are processed in sorted order and edges are canonicalized + sorted. */ export declare function deriveCommentDecomposition(params: CommentDecompositionParams): Promise; export interface DocGroupsParams { root: string; /** Doc files (prose) to mine — README / ADRs / other markdown. */ docFiles: string[]; /** In-scope code files a doc may name (the grouping universe). */ codeFiles: string[]; readFileText?: (absPath: string) => Promise; maxBytes?: number; } /** * Derive intent-declared groups from docs: each doc's ENTIRE text (docs are * prose, not comment-embedded) is scanned for the reference tokens of in-scope * code files; every code file a single doc names becomes one group (the doc * declares a module). Returns disjoint member groups of size ≥ 2 (a doc naming * one file declares no grouping), lexically sorted. Deterministic. */ export declare function deriveDocGroups(params: DocGroupsParams): Promise; //# sourceMappingURL=commentDecomposition.d.ts.map