import type { Precedent } from '../types/intent.js';
export interface NormativePrecedent extends Precedent {
    status: 'normative' | 'informational' | 'superseded';
    approvedBy: string;
    approvedAt: string;
    approvalSignature: string;
    category: string;
    supersededBy?: string;
    distinguishingNote?: string;
}
export interface PrecedentAlignment {
    aligned: boolean;
    closestPrecedent: NormativePrecedent | null;
    similarityScore: number;
    requiresDistinguishing: boolean;
    reason: string;
}
export interface PrecedentLibrary {
    precedents: NormativePrecedent[];
    categories: string[];
    createdAt: string;
    lastUpdatedAt: string;
}
export interface DriftAnalysis {
    driftDetected: boolean;
    driftScore: number;
    evaluationCount: number;
    alignedCount: number;
    divergentCount: number;
    divergentIds: string[];
}
export declare function createPrecedentLibrary(): PrecedentLibrary;
export declare function markAsNormative(opts: {
    precedent: Precedent;
    approverPrivateKey: string;
    approverPublicKey: string;
    category: string;
}): NormativePrecedent;
export declare function verifyNormativePrecedent(precedent: NormativePrecedent): boolean;
export declare function addToLibrary(library: PrecedentLibrary, precedent: NormativePrecedent): PrecedentLibrary;
export declare function checkAlignment(library: PrecedentLibrary, decision: {
    subject: string;
    context: string;
    outcome: string;
}, category?: string): PrecedentAlignment;
export declare function supersedePrecedent(opts: {
    library: PrecedentLibrary;
    oldPrecedentId: string;
    newPrecedent: NormativePrecedent;
    distinguishingNote: string;
}): PrecedentLibrary;
export declare function analyzeDrift(library: PrecedentLibrary, recentDecisions: Array<{
    subject: string;
    context: string;
    outcome: string;
    id: string;
}>, category?: string): DriftAnalysis;
//# sourceMappingURL=precedent.d.ts.map