export interface CandidateAuditResult { status: 'ok' | 'degraded' | 'error'; consumedCount: number; orphanCandidateCount: number; missingLedgerCount: number; /** * Consumed candidates resolved into an EXISTING principle via * `reuseEvidence` (not missing — by-design zero ledger growth). */ reusedResolvedCount?: number; /** * Consumed candidates whose `recommendation_kind` never targets the * Principle Ledger (not missing — by-design no ledger entry). */ nonLedgerKindCount?: number; /** The true-missing candidate ids (principle-kind, consumed, no resolution). */ missingLedgerEntryIds?: string[]; /** * When status='error': bounded description of the underlying failure * (e.g. a stale-schema SQLite error such as a missing column), so * operators see WHY state could not be read instead of a generic * refusal (rc-3 fail-loud, rc-8 bounded). */ reason?: string; } export declare function auditCandidateLedgerConsistency(workspaceDir: string): Promise; //# sourceMappingURL=candidate-audit.d.ts.map