import type { RequestOverrides } from './operations'; import type { SetResult } from '../types'; export type ReconcileSetResultOptions = { /** * The same per-request overrides `set` accepts. Supply `_config`/`authProvider` * so a receipt minted by a server `WalletClient` reconciles through THAT * client's app binding and provider rather than the process-global one. */ _overrides?: RequestOverrides; }; export type WaitForSetResultOptions = ReconcileSetResultOptions & { /** Total wall-clock bound. Default 60s. */ timeoutMs?: number; /** Maximum reconciliation attempts. Default 20. */ maxAttempts?: number; /** Delay between attempts. Default 3s. */ pollIntervalMs?: number; /** Cancels the wait. The latest `submitted` receipt is returned, never discarded. */ signal?: AbortSignal; }; /** * Poll the SAME signature a `submitted` receipt carries and return the * resulting `SetResult`. * * - Terminal receipts (`committed`, `confirmed`, `expired_not_landed`, * `signed`) are returned unchanged; nothing was left open. * - A `submitted` receipt with no transaction identifier (`transactionId: * null`) is rejected immediately: no identifier exists to poll. * - A transaction that landed and FAILED throws, exactly as it would have on * the original write. */ export declare function reconcileSetResult(receipt: SetResult, options?: ReconcileSetResultOptions): Promise; /** * Reconcile repeatedly until the receipt leaves `submitted` or the bound is hit. * * The bound is mandatory, because some states are permanently non-terminal by * design: an RPC that can never observe the signature or the expiry never * resolves. On exhaustion (or abort) this returns the LATEST `submitted` * receipt with its identifier intact rather than hanging or throwing the * identifier away. */ export declare function waitForSetResult(receipt: SetResult, options?: WaitForSetResultOptions): Promise;