import type { DenialReason as FoundationDenialReason } from '../types.js';
export { CYCLES_PROTOCOL_VERSION, CYCLES_EVIDENCE_SCHEMA_VERSION, RAIL_BUDGET_RESERVATION_PERMIT_CLAIM_TYPE, RAIL_BUDGET_RESERVATION_RELEASE_CLAIM_TYPE, RAIL_BUDGET_RESERVATION_DENIAL_CLAIM_TYPE, } from './types.js';
import type { CyclesDenial, CyclesDenialDetail, CyclesEvidenceView, CyclesPermitReceipt, CyclesReleaseReceipt, CyclesVerifyResult, SignCyclesDenialInput, SignCyclesPermitReceiptInput, SignCyclesReleaseReceiptInput, VerifyCyclesOptions } from './types.js';
import type { EvidenceDescriptorInput, EvidenceResolutionResult } from './evidence-resolution.js';
/**
 * Maps a Cycles denial signal (extracted from a CyclesEvidence view)
 * to an APS Tier-1 denial reason, preserving the full Cycles-side
 * detail Tier-2 in `cycles.denial_detail`.
 *
 * Returns `null` if the evidence view does not represent a denial
 * (artifact_type=decide-ALLOW, reserve-ALLOW, commit, release).
 *
 * Denial paths:
 *   (A) HTTP 4xx/5xx — artifact_type=error. ErrorCode source.
 *   (B) /v1/decide DENY — artifact_type=decide. DecisionReasonCode source.
 *   (C) dry_run=true reserve DENY — artifact_type=reserve.
 *       DecisionReasonCode source. (Non-dry reserve DENY is a wire-
 *       shape impossibility per cycles-protocol-v0.yaml:978 and is
 *       rejected at the CyclesEvidence schema layer.)
 */
export declare function mapCyclesDenialToFoundation(evidence: CyclesEvidenceView): {
    denial_reason: FoundationDenialReason;
    cycles: {
        denial_detail: CyclesDenialDetail;
    };
} | null;
export declare function signCyclesPermitReceipt(input: SignCyclesPermitReceiptInput, signerPrivateKeyHex: string): CyclesPermitReceipt;
/** Verify a Cycles permit receipt (sync). With `options.evidence`, also
 *  checks the receipt↔envelope hash binding (see `_checkEvidenceJoin`).
 *  NOTE: `valid: true` does NOT assert the envelope's own Ed25519
 *  authenticity or signer authority — that is the v0.2 item (#43). Pin
 *  `expected_signer` for issuer trust until then. */
export declare function verifyCyclesPermitReceipt(receipt: CyclesPermitReceipt, options?: VerifyCyclesOptions): CyclesVerifyResult;
/** Verify a Cycles permit receipt (async, DID-URI signers). Join-integrity
 *  caveat as in `verifyCyclesPermitReceipt`: `valid: true` does NOT assert
 *  the envelope's own Ed25519 authenticity (v0.2 — #43). */
export declare function verifyCyclesPermitReceiptWithDID(receipt: CyclesPermitReceipt, options?: VerifyCyclesOptions): Promise<CyclesVerifyResult>;
export declare function signCyclesReleaseReceipt(input: SignCyclesReleaseReceiptInput, signerPrivateKeyHex: string): CyclesReleaseReceipt;
/** Verify a Cycles release receipt (sync). With `options.evidence`, also
 *  checks the receipt↔envelope hash binding (see `_checkEvidenceJoin`).
 *  NOTE: `valid: true` does NOT assert the envelope's own Ed25519
 *  authenticity or signer authority — that is the v0.2 item (#43). Pin
 *  `expected_signer` for issuer trust until then. */
export declare function verifyCyclesReleaseReceipt(receipt: CyclesReleaseReceipt, options?: VerifyCyclesOptions): CyclesVerifyResult;
/** Verify a Cycles release receipt (async, DID-URI signers). Join-integrity
 *  caveat as in `verifyCyclesReleaseReceipt`: `valid: true` does NOT assert
 *  the envelope's own Ed25519 authenticity (v0.2 — #43). */
export declare function verifyCyclesReleaseReceiptWithDID(receipt: CyclesReleaseReceipt, options?: VerifyCyclesOptions): Promise<CyclesVerifyResult>;
export declare function signCyclesDenial(input: SignCyclesDenialInput, signerPrivateKeyHex: string): CyclesDenial;
/** Verify a Cycles denial (sync). With `options.evidence`, also checks the
 *  receipt↔envelope hash binding (see `_checkEvidenceJoin`). NOTE:
 *  `valid: true` does NOT assert the envelope's own Ed25519 authenticity or
 *  signer authority — that is the v0.2 item (#43). Pin `expected_signer`
 *  for issuer trust until then. */
export declare function verifyCyclesDenial(denial: CyclesDenial, options?: VerifyCyclesOptions): CyclesVerifyResult;
/** Verify a Cycles denial (async, DID-URI signers). Join-integrity caveat
 *  as in `verifyCyclesDenial`: `valid: true` does NOT assert the envelope's
 *  own Ed25519 authenticity (v0.2 — #43). */
export declare function verifyCyclesDenialWithDID(denial: CyclesDenial, options?: VerifyCyclesOptions): Promise<CyclesVerifyResult>;
/**
 * Combined verify + evidence-resolution result. `verify` is the existing
 * receipt verdict (signature, ttl, accountability shape - unchanged).
 * `evidence` is the claimed-vs-resolved verdict for the CyclesEvidence
 * envelope. `descriptor` is the mechanical input the W2-A1 verifier
 * descriptor consumes for the external-evidence axis.
 *
 * A green `verify` with a `signature_only` `descriptor.observation_basis`
 * is the explicit "claims an envelope at hash H, signature-checked only"
 * state. `counterparty_resolved` is "envelope at H fetched and matched".
 */
export interface CyclesVerifyWithEvidenceResult {
    verify: CyclesVerifyResult;
    evidence: EvidenceResolutionResult;
    descriptor: EvidenceDescriptorInput;
}
export declare function verifyCyclesPermitReceiptWithEvidence(receipt: CyclesPermitReceipt, options?: VerifyCyclesOptions): Promise<CyclesVerifyWithEvidenceResult>;
export declare function verifyCyclesReleaseReceiptWithEvidence(receipt: CyclesReleaseReceipt, options?: VerifyCyclesOptions): Promise<CyclesVerifyWithEvidenceResult>;
export declare function verifyCyclesDenialWithEvidence(denial: CyclesDenial, options?: VerifyCyclesOptions): Promise<CyclesVerifyWithEvidenceResult>;
/** Re-export the resolver type for callers wiring the async paths. */
export type { CyclesResolveDidDocument } from './types.js';
export { resolveEvidenceRef, recomputeEvidenceContentHash, toEvidenceDescriptorInput, } from './evidence-resolution.js';
export type { EvidenceResolver, EvidenceFetchResult, EvidenceResolutionResult, EvidenceResolutionStatus, EvidenceFailurePolicy, ResolveEvidenceConfig, FetchedCyclesEvidenceEnvelope, EvidenceDescriptorInput, EvidenceObservationBasis, } from './evidence-resolution.js';
//# sourceMappingURL=index.d.ts.map