import { type DigestAction, type PlanContext } from "../internals/plan.js"; import { type WorkspaceEvidenceStatus, type WorkspaceManifest, workspaceManifestExists } from "../workspace/manifest.js"; import { type WorkspaceRepoState } from "../workspace/state.js"; export interface WorkspaceEvidenceCell { status: WorkspaceEvidenceStatus; detail?: string; } export interface WorkspaceChildReportRow { id: string; path: string; kind?: string; router: string; exists: boolean; git: WorkspaceEvidenceCell & Partial; canon: WorkspaceEvidenceCell; config: WorkspaceEvidenceCell; parentIgnored: WorkspaceEvidenceCell; history: WorkspaceEvidenceCell & { latestSample?: string; ageDays?: number; }; usage: WorkspaceEvidenceCell & { events?: number; }; report: WorkspaceEvidenceCell & { path?: string; ageDays?: number; }; drift: { count?: number; }; status: WorkspaceEvidenceStatus; } export interface WorkspaceContractReportRow { id: string; from: string; to: string; kind: string; contractPath?: string; consumerPath?: string; status: WorkspaceEvidenceStatus; detail: string; } export interface WorkspaceSnapshotChange { id: string; path: string; status: "UNCHANGED" | "CHANGED" | "DIRTY" | "MISSING" | "UNKNOWN"; before?: string; after?: string; detail: string; } export interface WorkspaceReportDigest { manifest: { status: WorkspaceManifest["status"]; errors: string[]; repos: number; edges: number; git: boolean; contextDir: string; }; gitignore: WorkspaceEvidenceCell; rows: WorkspaceChildReportRow[]; contracts: WorkspaceContractReportRow[]; snapshot?: { source: string; label?: string; createdAt?: string; changes: WorkspaceSnapshotChange[]; }; mcp: WorkspaceEvidenceCell & { packageSpec?: string; }; summary: Record; } export { workspaceManifestExists }; export declare function workspaceReportDigest(ctx: PlanContext): Promise;