export type LearningRuleLifecycleState = "candidate" | "enforced"; export type LearningRuleConfidenceBand = "low" | "medium" | "high"; export type LearningRuleScope = "repo_memory" | "profile_memory"; export type LearningGovernanceStatus = "accepted" | "deferred" | "rejected"; export interface LearningEvidenceReference { kind: "run" | "artifact" | "file" | "request" | "post_mortem" | "other"; ref: string; note?: string; } export interface LearningRuleProposal { category: string; content: string; source?: string; scope?: LearningRuleScope; agent_id?: string; lifecycle_state?: LearningRuleLifecycleState; confidence_score?: number; confidence_band?: LearningRuleConfidenceBand; confidence_reasons?: string[]; evidence?: LearningEvidenceReference[]; explicit_confirmation?: boolean; } export interface LearningGovernancePolicy { persistence_min_confidence: number; enforcement_min_confidence: number; require_confirmation_for_low_confidence: boolean; auto_enforce_high_confidence: boolean; } export declare const DEFAULT_LEARNING_GOVERNANCE_POLICY: LearningGovernancePolicy; export interface LearningConfidenceInput { source: string; content: string; explicit: boolean; evidence_count: number; has_revert_signal: boolean; } export interface LearningConfidenceScore { score: number; band: LearningRuleConfidenceBand; reasons: string[]; } export interface GovernedLearningRule { schema_version: 1; id: string; dedupe_key: string; category: string; content: string; normalized_content: string; source: string; scope: LearningRuleScope; lifecycle_state: LearningRuleLifecycleState; confidence_score: number; confidence_band: LearningRuleConfidenceBand; confidence_reasons: string[]; evidence: LearningEvidenceReference[]; explicit_confirmation: boolean; created_at: string; updated_at: string; agent_id?: string; supersedes?: string[]; } export interface LearningRuleDecision { status: LearningGovernanceStatus; code: string; message: string; rule: GovernedLearningRule; } export interface LearningRuleLedgerRecord extends GovernedLearningRule { superseded_by?: string; superseded_at?: string; } export interface LearningRuleLedger { schema_version: 1; rules: LearningRuleLedgerRecord[]; } export interface LedgerMergeResult { action: "inserted" | "suppressed" | "superseded"; rule: LearningRuleLedgerRecord; superseded?: LearningRuleLedgerRecord; } export interface LedgerPromotionResult { action: "promoted" | "not_found" | "already_enforced"; promoted?: LearningRuleLedgerRecord; previous?: LearningRuleLedgerRecord; } export declare class LearningGovernanceError extends Error { readonly code: string; constructor(code: string, message: string); } export declare const normalizeLearningCategory: (value: string) => string; export declare const normalizeLearningText: (value: string) => string; export declare const scoreLearningConfidence: (input: LearningConfidenceInput) => LearningConfidenceScore; export declare const buildLearningDedupeKey: (scope: LearningRuleScope, category: string, content: string) => string; export declare const governLearningRule: (proposal: LearningRuleProposal, policy?: LearningGovernancePolicy, now?: string) => LearningRuleDecision; export declare const createEmptyLearningRuleLedger: () => LearningRuleLedger; export declare const mergeLearningRuleIntoLedger: (ledger: LearningRuleLedger, rule: GovernedLearningRule) => LedgerMergeResult; export declare const promoteLearningRuleCandidate: (ledger: LearningRuleLedger, dedupeKey: string, policy?: LearningGovernancePolicy, now?: string) => LedgerPromotionResult; export declare const readLearningRuleLedger: (filePath: string) => Promise; export declare const writeLearningRuleLedger: (filePath: string, ledger: LearningRuleLedger) => Promise; //# sourceMappingURL=LearningGovernance.d.ts.map