/** * BridgeProvider Interface — Cross-chain bridge/swap aggregator abstraction * * Mirrors the SwapProvider interface but for cross-chain (and bridge+swap) routes. * Implementations: LI.FI (first), Socket/Rango/Squid (future). * * Unlike SwapProvider, bridges have: * - Two chain IDs (from + to) * - Destination address (may differ from sender) * - A tool name (Across, Stargate, CCTP, ...) the aggregator picked * - Estimated bridge duration (seconds) */ import type { BridgeQuoteParams, BridgeQuote } from './types'; export interface BridgeProvider { /** Provider name (e.g., 'lifi', 'socket') */ readonly name: string; /** * Get a cross-chain bridge (or bridge+swap) quote. * @param params - from/to chain+token+amount, sender, recipient, slippage * @returns Quote with calldata ready to execute on the source chain */ getBridgeQuote(params: BridgeQuoteParams): Promise; } export declare class BridgeProviderError extends Error { readonly provider: string; readonly retryable: boolean; readonly statusCode?: number; constructor(message: string, provider: string, retryable?: boolean, statusCode?: number); } /** * Try providers in order, fall back on retryable errors. */ export declare function getBridgeQuoteWithFallback(providers: BridgeProvider[], params: BridgeQuoteParams): Promise;