import { z } from 'zod'; import type { EffectReconciler, EffectReconciliationPending } from './effectExecution.ts'; import type { EffectReceipt, EffectReceiptObservation } from './effectModel.ts'; import type { Xl1TransactionEffectPlan } from './xl1TransactionEffectPlan.ts'; type ObservationKind = EffectReceiptObservation['kind']; type ObservationInputOfKind = Kind extends ObservationKind ? Omit, 'sequence'> : never; type ControlObservationInput = ObservationInputOfKind<'abandoned' | 'error'>; export type Xl1TransactionEffectCapabilityResult = EffectReconciliationPending | { readonly observation: ObservationInputOfKind | ControlObservationInput; readonly state: 'advance'; }; type ActionPlan = Extract; type PlanFor = Extract; export interface Xl1TransactionEffectCapabilityContext { readonly plan: PlanFor; readonly receipt: EffectReceipt; } export interface Xl1TransactionEffectCapabilities { readonly observeFinality: (context: Xl1TransactionEffectCapabilityContext<'observe-finality'>) => Promise>; readonly observeInclusion: (context: Xl1TransactionEffectCapabilityContext<'observe-inclusion'>) => Promise>; readonly reconcileBroadcast: (context: Xl1TransactionEffectCapabilityContext<'reconcile-broadcast'>) => Promise>; readonly sign: (context: Xl1TransactionEffectCapabilityContext<'sign'>) => Promise>; readonly verifyContent: (context: Xl1TransactionEffectCapabilityContext<'verify-content'>) => Promise>; readonly writeContent: (context: Xl1TransactionEffectCapabilityContext<'write-content'>) => Promise>; } export declare const Xl1TransactionEffectReconcilerIssueCodes: readonly ["xl1-effect-reconciler.evidence-mismatch", "xl1-effect-reconciler.invalid-capability-result", "xl1-effect-reconciler.terminal-receipt"]; export declare const Xl1TransactionEffectReconcilerIssueCodeZod: z.ZodEnum<{ "xl1-effect-reconciler.evidence-mismatch": "xl1-effect-reconciler.evidence-mismatch"; "xl1-effect-reconciler.invalid-capability-result": "xl1-effect-reconciler.invalid-capability-result"; "xl1-effect-reconciler.terminal-receipt": "xl1-effect-reconciler.terminal-receipt"; }>; export type Xl1TransactionEffectReconcilerIssueCode = z.infer; export declare class Xl1TransactionEffectReconcilerError extends Error { readonly code: Xl1TransactionEffectReconcilerIssueCode; constructor(code: Xl1TransactionEffectReconcilerIssueCode, message: string); } export declare function createXl1TransactionEffectReconciler(capabilities: Xl1TransactionEffectCapabilities): EffectReconciler; export {}; //# sourceMappingURL=xl1TransactionEffectReconciler.d.ts.map