import type { Chain, Network } from "@wormhole-foundation/sdk-base"; import { amount } from "@wormhole-foundation/sdk-base"; import type { AttestationId, AutomaticTokenBridge, ChainContext, Signer, TokenId, TokenTransferDetails, TransactionId, TxHash, WormholeMessageId, CapabilitiesResponse, ExecutorTokenBridge, ChainAddress } from "@wormhole-foundation/sdk-definitions"; import { TokenBridge } from "@wormhole-foundation/sdk-definitions"; import type { AttestationReceipt as _AttestationReceipt, TransferQuote, TransferReceipt as _TransferReceipt } from "../../types.js"; import { TransferState } from "../../types.js"; import { Wormhole } from "../../wormhole.js"; import type { WormholeTransfer } from "../wormholeTransfer.js"; export declare class TokenTransfer implements WormholeTransfer { private readonly wh; fromChain: ChainContext; toChain: ChainContext; private _state; transfer: TokenTransferDetails; txids: TransactionId[]; attestations?: TokenTransfer.AttestationReceipt[]; private constructor(); getTransferState(): TransferState; static from(wh: Wormhole, from: TokenTransferDetails, timeout?: number, fromChain?: ChainContext, toChain?: ChainContext): Promise>; static from(wh: Wormhole, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext, toChain?: ChainContext): Promise>; static from(wh: Wormhole, from: TransactionId, timeout?: number, fromChain?: ChainContext, toChain?: ChainContext): Promise>; private static fromIdentifier; private static fromTransaction; initiateTransfer(signer: Signer): Promise; fetchAttestation(timeout?: number): Promise; completeTransfer(signer: Signer): Promise; } export declare namespace TokenTransfer { /** 8 is maximum precision supported by the token bridge VAA */ export const MAX_DECIMALS = 8; export type Protocol = "TokenBridge" | "AutomaticTokenBridge" | "ExecutorTokenBridge"; export type VAA = TokenBridge.TransferVAA | AutomaticTokenBridge.VAA | ExecutorTokenBridge.VAA; export type AttestationReceipt = _AttestationReceipt; export type TransferReceipt = _TransferReceipt; export function transfer(fromChain: ChainContext, transfer: TokenTransferDetails, signer: Signer): Promise; export function redeem(toChain: ChainContext, vaa: TokenTransfer.VAA, signer: Signer): Promise; export function track(wh: Wormhole, receipt: TokenTransfer.TransferReceipt, timeout?: number, fromChain?: ChainContext, toChain?: ChainContext): AsyncGenerator>; export function getReceipt(xfer: TokenTransfer): TransferReceipt; export function lookupDestinationToken(srcChain: ChainContext, dstChain: ChainContext, token: TokenId): Promise>; export function isTransferComplete(toChain: ChainContext, vaa: TokenTransfer.VAA): Promise; export function getTransferMessage(chain: ChainContext, txid: TxHash, timeout?: number): Promise; export function getTransferVaa(wh: Wormhole, key: WormholeMessageId | TxHash, timeout?: number): Promise; export function isTransferEnqueued(wh: Wormhole, key: WormholeMessageId): Promise; export function validateTransferDetails(wh: Wormhole, transfer: TokenTransferDetails, fromChain?: ChainContext, toChain?: ChainContext): void; type BaseQuoteDetails = Omit; export type QuoteTransferDetails = (BaseQuoteDetails & { protocol: TokenBridge.ProtocolName; payload?: Uint8Array; }) | (BaseQuoteDetails & { protocol: AutomaticTokenBridge.ProtocolName; nativeGas?: bigint; }) | (BaseQuoteDetails & { protocol: ExecutorTokenBridge.ProtocolName; msgValue: bigint; gasLimit: bigint; nativeGas?: bigint; referrerFee?: { feeDbps: bigint; referrer: ChainAddress; }; }); export function quoteTransfer(wh: Wormhole, srcChain: ChainContext, dstChain: ChainContext, transfer: QuoteTransferDetails, getCapabilities?: (network: Network) => Promise): Promise; export function getExecutorGasDropOffLimit(wh: Wormhole, dstChain: ChainContext, getCapabilities?: (network: Network) => Promise): Promise; export function getExecutorQuote(wh: Wormhole, srcChain: ChainContext, dstChain: ChainContext, gasLimit: bigint, msgValue: bigint, nativeGas?: bigint, getCapabilities?: (network: Network) => Promise): Promise; export function destinationOverrides(srcChain: ChainContext, dstChain: ChainContext, transfer: TokenTransferDetails): Promise; export function calculateReferrerFee(amt: amount.Amount, dBps: bigint): { fee: amount.Amount; remaining: amount.Amount; }; export {}; } //# sourceMappingURL=tokenTransfer.d.ts.map