import type { PublicClient, WalletClient } from "viem"; export declare const EVM_CHAINS: { readonly ethereum: 1; readonly polygon: 137; readonly bsc: 56; readonly arbitrum: 42161; readonly optimism: 10; readonly base: 8453; readonly robinhood: 4663; }; export type EvmChainName = keyof typeof EVM_CHAINS; export declare const USDC_NATIVE: Record; export declare const USDC_BRIDGED: Partial>; export interface BridgeQuoteOptions { fromChain: EvmChainName; toChain: EvmChainName; fromToken: `0x${string}`; toToken: `0x${string}`; fromAmount: string; fromAddress: `0x${string}`; toAddress?: `0x${string}`; slippage?: number; integrator?: string; } export interface BridgeQuote { from: { chain: EvmChainName; token: `0x${string}`; amount: string; }; to: { chain: EvmChainName; token: `0x${string}`; amount: string; amount_min: string; }; fees: { bridge_usd: number; gas_usd: number; total_usd: number; }; eta_seconds: number; bridge_tool: string; raw_quote: unknown; } export declare function bridgeQuote(opts: BridgeQuoteOptions): Promise; export interface BridgeReceipt { source_tx: `0x${string}`; source_chain: EvmChainName; dest_chain: EvmChainName; bridge_tool: string; status: "submitted" | "pending" | "done" | "failed"; dest_tx?: string; } export declare function bridgeExecute(quote: BridgeQuote, walletClient: WalletClient, publicClient: PublicClient): Promise; /** * Poll LiFi's /v1/status for cross-chain arrival. Stargate/Across typically * finalise in 30s-3min; Circle CCTP can take 15-25min on Polygon side. * * Returns once status is "DONE" or "FAILED", or throws on timeout. */ export declare function bridgeWaitForArrival(sourceTxHash: `0x${string}`, opts?: { pollIntervalMs?: number; timeoutMs?: number; }): Promise<{ status: "done" | "failed"; dest_tx?: string; raw: unknown; }>; //# sourceMappingURL=crossChain.d.ts.map