import { PeginStatusReader, WotsKeySubmitter, PresignClient, ClaimerArtifactsReader } from '../../services/deposit/interfaces'; import { BearerTokenProvider } from './json-rpc-client'; import { BatchGetPeginStatusParams, BatchGetPeginStatusResponse, BatchGetPegoutStatusParams, BatchGetPegoutStatusResponse, GetPeginStatusParams, GetPeginStatusResponse, RequestDepositorClaimerArtifactsParams, RequestDepositorClaimerArtifactsResponse, RequestDepositorPresignTransactionsParams, RequestDepositorPresignTransactionsResponse, SubmitDepositorPresignaturesParams, SubmitDepositorWotsKeyParams } from './types'; export interface VaultProviderRpcClientOptions { /** Timeout in milliseconds per request (default: 60000) */ timeout?: number; /** Number of retry attempts for safe methods (default: 3) */ retries?: number; /** Initial retry delay in milliseconds (default: 1000) */ retryDelay?: number; /** * Custom retry predicate. Default retries only the idempotent read * methods: `getPeginStatus`, `batchGetPeginStatus`, `batchGetPegoutStatus`, * `requestDepositorPresignTransactions`. */ retryableFor?: (method: string) => boolean; /** Custom headers. */ headers?: Record; /** * Per-request bearer-token source. A non-null return attaches * `Authorization: Bearer `; `null` skips auth. Wire a * {@link VpTokenProvider} for depositor-gated methods. */ tokenProvider?: BearerTokenProvider; /** Maximum response body size, in bytes, for typed JSON-RPC calls */ maxResponseBytes?: number; } /** * Concrete VP RPC client implementing all service interfaces. * * Usage: * ```ts * const client = new VaultProviderRpcClient("https://vp.example.com/rpc"); * const status = await client.getPeginStatus({ pegin_txid: "abc..." }); * ``` */ export declare class VaultProviderRpcClient implements PeginStatusReader, WotsKeySubmitter, PresignClient, ClaimerArtifactsReader { private client; constructor(baseUrl: string, options?: VaultProviderRpcClientOptions); /** * Request the payout/claim/assert transactions that the depositor * needs to pre-sign before the vault can be activated on Bitcoin. */ requestDepositorPresignTransactions(params: RequestDepositorPresignTransactionsParams, signal?: AbortSignal): Promise; /** * Submit the depositor's pre-signatures for the payout transactions * and the depositor-as-claimer graph. */ submitDepositorPresignatures(params: SubmitDepositorPresignaturesParams, signal?: AbortSignal): Promise; /** * Submit the depositor's WOTS public key to the vault provider. * Called after the pegin is finalized on Ethereum, when the VP is in * `PendingDepositorWotsPK` status. */ submitDepositorWotsKey(params: SubmitDepositorWotsKeyParams, signal?: AbortSignal): Promise; /** * Request the BaBe DecryptorArtifacts needed for the depositor to * independently evaluate garbled circuits during a challenge. */ requestDepositorClaimerArtifacts(params: RequestDepositorClaimerArtifactsParams, signal?: AbortSignal): Promise; /** Get the current pegin status from the vault provider daemon. */ getPeginStatus(params: GetPeginStatusParams, signal?: AbortSignal): Promise; /** * Get pegin status for many txids in one round trip. Per-result envelope * isolates per-pegin failures from the overall RPC. Caller must chunk * inputs at `VP_BATCH_MAX_SIZE`. */ batchGetPeginStatus(params: BatchGetPeginStatusParams, signal?: AbortSignal): Promise; /** * Get pegout status for many txids in one round trip. Same per-result * envelope semantics as `batchGetPeginStatus`. */ batchGetPegoutStatus(params: BatchGetPegoutStatusParams, signal?: AbortSignal): Promise; } //# sourceMappingURL=api.d.ts.map