import { type ClassifierCaller } from "../analyze/classifier.js"; /** * v0.5 §6 — `solosquad analyze repo ` entry point. * * Flow: scan → diff ledger → classify only new/modified → merge → workflow * match → render Markdown report → persist. * * `--force` re-classifies everything (model upgrade). `--prune-orphans` * drops ledger entries whose files vanished. The injected `caller` is * how the test harness asserts "second run makes 0 LLM calls" (§11.3). */ export interface AnalyzeRepoOpts { force?: boolean; prune_orphans?: boolean; caller?: ClassifierCaller; /** Override model fingerprint label (test determinism). */ model_fingerprint?: string; /** Override now() — for deterministic report filenames in tests. */ now?: () => Date; /** Don't render to disk, return the result only. */ in_memory?: boolean; } export interface AnalyzeResult { repo_root: string; ledger_path: string; report_path?: string; report_body: string; scanned_count: number; classified_count: number; caller_calls: number; no_match: boolean; best_template?: string; } export declare function analyzeRepoCommand(repoInput: string, opts?: AnalyzeRepoOpts): Promise; /** Pretty-printing wrapper for the CLI surface. */ export declare function analyzeRepoCli(repoInput: string, opts: { force?: boolean; pruneOrphans?: boolean; }): Promise;