import type { FileSystem } from "../ports/filesystem.js"; import type { GitClient } from "../ports/git.js"; export interface ReferenceCountResult { readonly referenceCount: number; readonly referencingFiles: readonly string[]; } export type ReferenceCounter = (symbolName: string, filePath: string) => Promise; export type ReviewCategory = "structural" | "formatting" | "test" | "docs" | "config"; export interface ReviewFile { readonly path: string; readonly category: ReviewCategory; readonly structuralChanges?: { added: number; removed: number; changed: number; }; } export interface BreakingChange { readonly symbol: string; readonly kind: string; readonly filePath: string; readonly changeType: "removed_export" | "signature_changed" | "type_changed"; readonly previousSignature?: string; readonly newSignature?: string; readonly impactedFiles: number; readonly impactedFilePaths: readonly string[]; } export interface StructuralReviewResult { readonly base: string; readonly head: string; readonly totalFiles: number; readonly categories: Record; readonly files: readonly ReviewFile[]; readonly breakingChanges: readonly BreakingChange[]; readonly summary: string; } export interface StructuralReviewOptions { readonly cwd: string; readonly fs: FileSystem; readonly git: GitClient; readonly resolveWorkingTreePath: (filePath: string) => string; readonly base?: string | undefined; readonly head?: string | undefined; readonly countReferences: ReferenceCounter; } export declare function structuralReview(opts: StructuralReviewOptions): Promise; //# sourceMappingURL=structural-review.d.ts.map