import type { Chain, Network } from "@wormhole-foundation/sdk-base"; import type { AttestationId, ChainContext, CircleTransferDetails, GatewayTransferDetails, ProtocolName, Signer, TokenTransferDetails, TxHash } from "@wormhole-foundation/sdk-definitions"; import type { AttestationReceipt, TransferQuote, TransferReceipt, TransferState } from "../types.js"; import type { Wormhole } from "../wormhole.js"; export type TransferRequest = PN extends "TokenBridge" | "AutomaticTokenBridge" | "ExecutorTokenBridge" ? TokenTransferDetails : PN extends "CircleBridge" | "AutomaticCircleBridge" ? CircleTransferDetails : PN extends "IbcBridge" ? GatewayTransferDetails : never; export interface TransferProtocol { isTransferComplete(toChain: ChainContext, attestation: AttestationId): Promise; validateTransferDetails(wh: Wormhole, transfer: TransferRequest): Promise; quoteTransfer(xfer: WormholeTransfer): Promise; getReceipt(xfer: WormholeTransfer): TransferReceipt>; track(wh: Wormhole, xfer: TransferReceipt>, timeout: number): AsyncGenerator>>; } export interface WormholeTransfer { transfer: TransferRequest; getTransferState(): TransferState; initiateTransfer(signer: Signer): Promise; fetchAttestation(timeout?: number): Promise; completeTransfer(signer: Signer): Promise; } //# sourceMappingURL=wormholeTransfer.d.ts.map