import type { RpcCaller } from "../core/fixtures.js"; import type { AdapterImplementation, AdapterOperation, AdapterRequest, AdapterResponse, JsonValue } from "../protocol/types.js"; import { type PsbtTransitionPolicy } from "../psbt/invariants.js"; import type { CheckpointComparison, CheckpointRecord } from "../runner/artifacts.js"; import type { ScenarioAdapterCell, ScenarioAssertionEvidence } from "./definition.js"; export interface AdapterRequestClient { readonly implementation?: AdapterImplementation; request(request: AdapterRequest, timeoutMs: number): Promise; restart?(): Promise; } export interface CheckpointWriter { checkpoint(scenario: string, stage: string, psbt: string, comparison?: CheckpointComparison): Promise; } export interface ScenarioExecutionContextOptions { readonly rpc: RpcCaller; readonly artifacts: CheckpointWriter; readonly adapters: ReadonlyMap; readonly adapterTimeoutMs: number; } export interface CoreFinalizeResult { readonly complete: boolean; readonly hex?: string; } export interface CoreFinalizePsbtResult { readonly complete: boolean; readonly psbt?: string; } export interface CorePolicyResult { readonly allowed: boolean; readonly txid?: string; readonly rejectReason?: string; } export declare class ScenarioExecutionContext { #private; constructor(options: ScenarioExecutionContextOptions); get rpc(): RpcCaller; get checkpoints(): readonly CheckpointRecord[]; takeAdapterCells(): ScenarioAdapterCell[]; request(adapterName: string, operation: AdapterOperation, payload: Record): Promise; outputString(response: AdapterResponse, key: string, operation: string): string; transitionEvidence(policy: PsbtTransitionPolicy, name: string, beforePsbt: string, afterPsbt: string, observedImplementation?: string): ScenarioAssertionEvidence; requireTransition(policy: PsbtTransitionPolicy, name: string, beforePsbt: string, afterPsbt: string, observedImplementation?: string): ScenarioAssertionEvidence; requireAddedInputField(name: string, beforePsbt: string, afterPsbt: string, keyTypes: readonly number[], inputIndexes?: readonly number[]): ScenarioAssertionEvidence; requireInputFieldPresence(name: string, psbt: string, keyTypes: readonly number[], inputIndexes: readonly number[]): ScenarioAssertionEvidence; requireInputFieldAbsence(name: string, psbt: string, keyTypes: readonly number[], inputIndexes: readonly number[]): ScenarioAssertionEvidence; checkpoint(scenario: string, stage: string, psbt: string, comparison?: CheckpointComparison): Promise; finalizeWithCore(psbt: string): Promise; finalizePsbtWithCore(psbt: string): Promise; policyCheck(finalized: CoreFinalizeResult): Promise; policyCheckTransaction(transactionHex: string): Promise; } //# sourceMappingURL=context.d.ts.map