// Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
// ══════════════════════════════════════════════════════════════════
// Payment Rails — public SDK contract
// ══════════════════════════════════════════════════════════════════
// Spec: every payment rail (Nano, Lightning, USDC, Stripe, etc.) MUST
// implement this interface AND wire the GovernanceHooks before money
// moves. The contract:
//
//   1. preAuthorize() runs before any state-changing rail call.
//      Returns a PaymentReceipt skeleton (success path) or a
//      PaymentDenial (fail path). No retry; no partial state.
//
//   2. On rail-side success, emit a fully-signed PaymentReceipt that
//      binds (rail_name, action_ref, delegation_ref, amount, currency,
//      tx_proof) to an Ed25519 signature.
//
//   3. On rail-side failure, emit a fully-signed PaymentDenial citing
//      one of the closed-taxonomy denial_reason values.
//
//   4. revokeRail(walletId) MUST stop subsequent operations bound to
//      the named wallet. Cascade revocation lives outside this SDK
//      (gateway product), but the rail interface guarantees the cut.
//
// The gateway runtime composes these rails with credential storage,
// wallet derivation, and routing. Those stay private. This SDK ships
// the canonical signed-receipt format so audits replay across rails.
// ══════════════════════════════════════════════════════════════════
export {};
//# sourceMappingURL=types.js.map