import { IBaseBridgeConfig, IBaseBridgeConfigOptions } from '../../core/types'; import { ISendTokenInput, IStargateBusDriveSettings, IStargateOFTQuote, IStargateQuoteOFT, IStargateTokenValidateParams } from './types'; import { Hash } from 'viem'; export * from './types'; export declare function stargateConfig(options: IBaseBridgeConfigOptions): IBaseBridgeConfig; export declare class Stargate { private client?; constructor(config: IBaseBridgeConfig); getBusQueueTime({ fromEndpointId, toEndpointId, }: { fromEndpointId: string; toEndpointId: string; }): Promise; getQuoteOFT({ publicClient, bridgeAddress, endPointId, receiver, amount, }: IStargateQuoteOFT): Promise; getQuoteSend({ publicClient, bridgeAddress, endPointId, receiver, amount, minAmount, }: IStargateOFTQuote): Promise<{ nativeFee: bigint; lzTokenFee: bigint; }>; /** * Send token through Stargate bridge * @param {WalletClient} walletClient Wallet client * @param {PublicClient} publicClient Public client * @param {Address} bridgeAddress Bridge address * @param {Address} tokenAddress ERC-20 token address * @param {Number} endPointId Stargate end point ID * @param {Address} receiver Receiver address * @param {BigInt} amount Send amount * @returns {Hash} transaction hash */ sendToken({ walletClient, publicClient, bridgeAddress, tokenAddress, endPointId, receiver, amount, }: ISendTokenInput): Promise; /** * Validate token information * @param {fromBridgeAddress} from chain bridge contract address * @param {fromTokenAddress} from token address * @param {fromTokenSymbol} from token symbol * @param {fromChainId} from chain id * @param {toTokenAddress} to token address * @param {toTokenSymbol} to token symbol * @param {toChainId} to chain id * @param {toBridgeAddress} to chain bridge contract address * @param {amount} send token amount * @param {toPublicClient} to chain public client * @param {fromPublicClient} from chain public client * @param {dstEndpointId} Stargate destination endpoint id * @param {stargateEndpoint} Stargate API endpoint * @returns {boolean} is token information valid or not */ validateStargateToken({ fromBridgeAddress, fromTokenAddress, fromTokenDecimals, fromTokenSymbol, fromChainId, toTokenAddress, toTokenSymbol, toTokenDecimals, toChainId, toBridgeAddress, amount, toPublicClient, fromPublicClient, dstEndpointId, stargateEndpoint, }: IStargateTokenValidateParams): Promise; }