import type { PsbtDocument, PsbtMapLocation } from "./document.js"; import { type PsbtFieldMetadata } from "./fields.js"; export type PsbtTransitionPolicy = "roundtrip" | "sign" | "combine" | "finalize"; export type PsbtTransitionFailureCode = "TRANSACTION_IDENTITY_CHANGED" | "TX_MODIFIABLE_INVALID_CHANGE" | "ENTRY_ADDED" | "ENTRY_REMOVED" | "ENTRY_CHANGED"; export interface PsbtValueFingerprint { readonly valueSha256: string; readonly valueBytes: number; } export type PsbtSafeGuidanceCode = "TRANSACTION_INTENT_CHANGED" | "RESTORE_TX_MODIFIABLE_FLAGS" | "RESTORE_EXTENSION_METADATA" | "RESTORE_AND_RESIGN" | "RESTORE_REMOVED_FIELD" | "REJECT_CHANGED_FIELD" | "REVIEW_UNEXPECTED_FIELD"; export interface PsbtSafeGuidance { readonly code: PsbtSafeGuidanceCode; readonly severity: "stop" | "review"; readonly summary: string; readonly nextSteps: readonly string[]; } export interface PsbtTransitionFailure { readonly code: PsbtTransitionFailureCode; readonly location: PsbtMapLocation; readonly keyType: number; readonly completeKeySha256: string; readonly keyBytes: number; readonly field?: PsbtFieldMetadata; readonly guidance?: PsbtSafeGuidance; readonly before?: PsbtValueFingerprint; readonly after?: PsbtValueFingerprint; } export interface PsbtTransitionResult { readonly ok: boolean; readonly policy: PsbtTransitionPolicy; readonly exactBytesEqual: boolean; readonly failures: readonly PsbtTransitionFailure[]; } export declare function assertPsbtTransition(policy: PsbtTransitionPolicy, before: PsbtDocument, after: PsbtDocument): PsbtTransitionResult; //# sourceMappingURL=invariants.d.ts.map