import type { Address, Hex } from 'viem'; import { type Quote } from './codec.js'; import type { Permit2Data, SubmitQuoteCommand } from './types.js'; import { TokenPullMode } from './types.js'; /** Common params for both quoting and executing */ export interface QuotedTransferParams { /** QuotedCalls contract address */ quotedCallsAddress: Address; /** Warp route (TokenRouter) address */ warpRoute: Address; /** Destination domain ID */ destination: number; /** Recipient address as bytes32 */ recipient: Hex; /** Transfer amount in token wei */ amount: bigint; /** ERC20 token address (zeroAddress for native token routes) */ token: Address; /** Signed quotes from fee-quoting service */ quotes: SubmitQuoteCommand[]; /** Client salt (pre-scope) */ clientSalt: Hex; /** Target router bytes32 for cross-collateral TRANSFER_REMOTE_TO */ targetRouter?: Hex; } export interface QuotedCallsTransaction { to: Address; data: Hex; value: bigint; } /** * Build calldata for QuotedCalls.quoteExecute() — used via eth_call * to discover fee amounts before building the real execute tx. * * Commands: [SUBMIT_QUOTE×N, TRANSFER_REMOTE/TRANSFER_REMOTE_TO] */ export declare function buildQuoteCalldata(params: QuotedTransferParams): QuotedCallsTransaction; /** * Build calldata for QuotedCalls.execute() using fee amounts * from a prior quoteExecute call. * * Commands: [SUBMIT_QUOTE×N, TRANSFER_FROM/PERMIT2, TRANSFER_REMOTE, SWEEP] */ export declare function buildExecuteCalldata(params: QuotedTransferParams & { /** Fee quotes from quoteExecute (parsed Quote[][]) */ feeQuotes: Quote[][]; /** Token pull strategy */ tokenPullMode: TokenPullMode; /** Required when tokenPullMode === Permit2 */ permit2Data?: Permit2Data; }): QuotedCallsTransaction; //# sourceMappingURL=builder.d.ts.map