interface Rule { id: string; text: string; source: string; isConstitution: boolean; intents: string[]; priority: number; } interface Bundle { constitution: { rules: Rule[]; hash: string; }; shards: { rule: Rule; }[]; manifest: { sourceHashes: Record; }; } export declare const MOD_GUIDANCE_DIR = ".claude-flow/mods/guidance"; export interface ModObservation { version: 1; kind: 'guidance-observation'; id: string; runId: string; taskId: number; bundleId: string; sourceRevision: string; ruleIds: string[]; checks: { allow: number; ask: number; deny: number; }; tools: { ok: number; error: number; denied: number; }; completion: 'completed' | 'aborted' | 'interrupted'; verified: false; learningEligible: false; } /** Stable digest of the exported rules; a provenance identifier, not a signature. */ export declare function buildModProjection(bundle: Bundle, sourceRevision: string, sourceDigests?: Record): { bundleId: string; entries: { id: string; text: string; source: string; constitution: boolean; intents: string[]; priority: number; }[]; sourceDigests?: { [k: string]: string; } | undefined; version: 1; sourceRevision: string; constitutionHash: string; sourceHashes: { [k: string]: string; }; }; /** Explicit CLI export only. Never called from the native prompt/tool hooks. */ export declare function writeModProjection(directory: string, projection: ReturnType): Promise; /** Strict allowlist: a writable `verified: true` or receipt cannot become evidence. */ export declare function parseModObservations(text: string): ModObservation[]; /** Review priorities only. Never feeds the accepted RunEvent ledger or optimizer. */ export declare function collectModCandidates(directory: string, bundleId?: string): Promise<{ version: number; status: string; verified: boolean; learningEligible: boolean; observations: number; excluded: number; summary: { files: number; withGuidance: number; withoutGuidance: number; completed: number; aborted: number; interrupted: number; checks: { allow: number; ask: number; deny: number; }; tools: { ok: number; error: number; denied: number; }; }; candidates: { verified: boolean; learningEligible: boolean; toolErrorRate: number | null; deniedCheckRate: number | null; reviewReasons: string[]; bundleId: string; sourceRevision: string; ruleId: string; observations: number; affectedObservations: number; toolErrors: number; toolExecutions: number; deniedTools: number; deniedChecks: number; permissionChecks: number; aborted: number; interrupted: number; completed: number; }[]; interpretation: string; requiredBeforeLearning: string[]; }>; export {}; //# sourceMappingURL=mod-projection.d.ts.map