import type { CoreDecisionOutputV1, DecisionRefInputV1, JsonValue } from './types.js'; export declare const DECISION_REF_TAG: 'APS-DECISION-REF-V1'; export declare const DECISION_COMPONENT_TAGS: { readonly authority: 'APS-DECISION-AUTHORITY-V1'; readonly policy: 'APS-DECISION-POLICY-V1'; readonly context: 'APS-DECISION-CONTEXT-V1'; readonly output: 'APS-DECISION-OUTPUT-V1'; }; export declare function computeDecisionComponentRefV1(tag: keyof typeof DECISION_COMPONENT_TAGS, value: JsonValue): string; export declare function validateDecisionRefInputV1(input: DecisionRefInputV1): void; export declare function computeDecisionRefV1(input: DecisionRefInputV1): string; /** * Validate a CoreDecisionOutputV1 exactly as received, repairing nothing. * * This is the verification-side entry point. Draft line 1086 says constraints is a * duplicate-free array of NFC strings sorted by UTF-8 bytes, and section 5.6 makes a * structural failure invalid, so a received array that is unsorted, duplicated or not in * NFC is rejected here rather than quietly repaired. Section 4.1 lines 822-824 state the * same principle for the other canonical array in this protocol: a verifier accepts only * the resulting canonical form and does not normalize an untrusted wire object. * * normalizeCoreDecisionOutputV1 keeps repairing, for the issuing side, where the caller is * building the value it is about to sign. */ export declare function validateCoreDecisionOutputV1(value: unknown): CoreDecisionOutputV1; export declare function normalizeCoreDecisionOutputV1(input: CoreDecisionOutputV1): CoreDecisionOutputV1; export declare function buildDecisionRefV1(input: { action_ref: string; authority_state: JsonValue; policy_input: JsonValue; decision_context: JsonValue; decision_output: CoreDecisionOutputV1; }): { input: DecisionRefInputV1; decision_ref: string; }; //# sourceMappingURL=decision-ref.d.ts.map