import type { BoundaryProfile, ProfileComparisonResult, DecisionComparisonResult, ProfileTaggedDecision, ThresholdDistance } from '../types/decision-equivalence.js'; export declare const CANONICAL_PROFILES: Record; /** * Resolve a profile by name. Returns the canonical profile or undefined. */ export declare function resolveProfile(name: string): BoundaryProfile | undefined; /** * Register a custom boundary profile. * Custom profiles must be namespaced (contain ':'). */ export declare function registerProfile(profile: BoundaryProfile): void; /** * Compare two boundary profiles to determine compatibility. * This is a static analysis — no runtime negotiation. */ export declare function compareProfiles(a: BoundaryProfile, b: BoundaryProfile): ProfileComparisonResult; /** * Compare two profile-tagged decisions for equivalence. * * - Same profile, same hash → equivalent * - Same profile, different hash → divergent * - Overlapping profiles → project to intersection, compare * - Disjoint profiles → incomparable * * No runtime negotiation. Static projection. */ export declare function compareDecisions(a: ProfileTaggedDecision, b: ProfileTaggedDecision): DecisionComparisonResult; /** * Compute the threshold distance for a metric. * This records proximity to a decision boundary — the protocol * exposes this, it does NOT resolve divergent thresholds. */ export declare function computeThresholdDistance(metric: string, actual: number, threshold: number): ThresholdDistance; /** * Tag a decision with a boundary profile. * Extracts the profile's field set from the raw decision fields * and computes the content hash over those fields. */ export declare function tagDecisionWithProfile(profileName: string, fields: Record, thresholdDistances?: ThresholdDistance[]): ProfileTaggedDecision; /** * Compute the decision question hash — the cross-system invariant. * This hashes only the QUESTION being asked, not the answer. * Two systems asking the same question produce the same hash * regardless of how they evaluate it. */ export declare function computeDecisionQuestionHash(fields: Record, profileName: string): string; /** * Check if two decisions are asking the same question. * This is the minimal invariant — true means the decisions * are about the same thing, regardless of evaluation outcome. */ export declare function isSameDecisionQuestion(a: ProfileTaggedDecision, b: ProfileTaggedDecision): boolean; //# sourceMappingURL=decision-equivalence.d.ts.map