import { PopulatedTx } from './misc'; /** * Parameters required to create an intent. * * @property {number} fromChainId - ID of the chain where funds will be sent from * @property {string} fromToken - Address of the token to be sent * @property {string} fromAmount - Amount of tokens to be sent (in token decimals) * @property {string} [fromSender] - Address of the account sending the funds * @property {number} toChainId - ID of the chain where funds will be received * @property {string} toToken - Address of the token to be received * @property {string} [toRecipient] - Address of the recipient that will receive the funds (default: `fromSender`) * @property {number} [slippagePercentage] - Slippage tolerance percentage * @property {number} [deadline] - Timestamp after which the transaction will be rejected * @property {boolean} [allowMultipleTxs] - Whether multiple transactions are allowed */ export declare type IntentParameters = { fromChainId: number; fromToken: string; fromAmount: string; fromSender?: string; toChainId: number; toToken: string; toRecipient?: string; slippagePercentage?: number; deadline?: number; allowMultipleTxs?: boolean; }; /** * Quote information for an intent, including pricing and routing details. * * @property {string} id - Unique identifier for the quote * @property {number} fromChainId - ID of the chain where funds will be sent from * @property {string} fromToken - Address of the token to be sent * @property {string} fromAmount - Amount of tokens to be sent (in token decimals) * @property {number} toChainId - ID of the chain where funds will be received * @property {string} toToken - Address of the token to be received * @property {string} expectedToAmount - Expected amount of tokens to be received (in token decimals) * @property {string} minToAmount - Minimum amount of tokens to be received (slippage protected) (in token decimals) * @property {number} estimatedTime - Estimated time for the intent to complete in seconds * @property {IntentStep[]} steps - Ordered array of steps that make up this intent */ export declare type IntentQuote = { id: string; fromChainId: number; fromToken: string; fromAmount: string; toChainId: number; toToken: string; expectedToAmount: string; minToAmount: string; estimatedTime: number; steps: IntentStep[]; }; /** * Atomic step of an intent. * * @property {number} fromChainId - ID of the chain, where funds will be sent from. * @property {string} fromToken - Address of the token to be sent. * @property {string} fromAmount - Amount of tokens to be sent (in token decimals). * @property {number} fromTokenDecimals - Decimals of the fromToken. Used for display purposes. * @property {number} toChainId - ID of the chain, where funds will be received (can be the same as `fromChainId`). * @property {string} toToken - Address of the token to be received. * @property {string} expectedToAmount - Expected amount of tokens to be received (in token decimals). * @property {string} minToAmount - Minimum amount of tokens to be received (slippage protected) (in token decimals). * @property {number} toTokenDecimals - Decimals of the toToken. Used for display purposes. * @property {string} routerAddress - Address of the router that performs the operation. * @property {number} estimatedTime - Estimated time for the operation to complete in seconds. * @property {string[]} moduleNames - Names of the modules used for the operation. * @property {string} gasDropAmount - Amount of gas to be dropped after the operation alongside `toToken`. * @property {string} nativeFee - Native fee to be paid for the operation (if any). * @property {PopulatedTx} [tx] - Optional populated transaction for the operation (returned only if `fromSender` is provided). */ export declare type IntentStep = { fromChainId: number; fromToken: string; fromAmount: string; fromTokenDecimals: number; toChainId: number; toToken: string; expectedToAmount: string; minToAmount: string; toTokenDecimals: number; routerAddress: string; estimatedTime: number; moduleNames: string[]; gasDropAmount: string; nativeFee: string; tx?: PopulatedTx; };