import type { PolicyVerdict } from './policy.js';
import type { EvaluationMethod } from './execution-envelope.js';
export type { EvaluationMethod } from './execution-envelope.js';
export type ScopeInterpretation = 'exact' | 'glob' | 'hierarchical';
export type ContentHashAlgorithm = 'sha256';
export interface ContentHash {
    algorithm: ContentHashAlgorithm;
    hash: string;
    canonicalForm: string;
    /** Identity boundary: sorted list of top-level field names included in the hash.
     *  Part of the committed content — changing the boundary changes the hash.
     *  Enables portable identity: any engine can verify which fields define identity
     *  without depending on external spec projection rules. */
    identityBoundary?: string[];
}
export interface DecisionSemantics {
    structuralVerdict: PolicyVerdict;
    trustVerdict: PolicyVerdict | null;
    override?: {
        active: boolean;
        phase: string;
        wouldHaveBeen: PolicyVerdict;
    };
    finalVerdictRule: string;
    reproducibility: string;
}
export interface DecisionArtifact {
    artifactId: string;
    artifactType: 'decision';
    version: string;
    engine: string;
    timestamp: string;
    intent: {
        intentId: string;
        agentId: string;
        action: {
            type: string;
            target: string;
            scopeRequired: string;
        };
        contentHash: ContentHash;
    };
    evaluation: {
        verdict: PolicyVerdict;
        evaluationMethod: EvaluationMethod;
        principlesChecked: string[];
        evaluatorId: string;
        decisionId: string;
    };
    semantics: DecisionSemantics;
    proof: {
        intentSignature: string;
        decisionSignature: string;
        artifactSignature: string;
    };
}
export interface DecisionArtifactVerification {
    valid: boolean;
    contentHashValid: boolean;
    intentSignatureValid: boolean;
    decisionSignatureValid: boolean;
    artifactSignatureValid: boolean;
    errors: string[];
}
//# sourceMappingURL=decision-semantics.d.ts.map