import type { IAddress } from '../../types'; export interface IParaswapQuoteInput { chainId: number; srcToken: IAddress; srcDecimals: number; destToken: IAddress; destDecimals: number; amount: bigint; receiver: IAddress; /** * Slippage tolerance in bps (1 bp = 0.01%). Used to derive the * `destAmount` minimum baked into the resulting Paraswap calldata, so the * on-chain DEX leg enforces the same tolerance the SwapRouter does * (otherwise the leg reverts at the aggregator's exact-out check before * the SwapRouter's `minAmountOut` is ever evaluated). */ slippageBps: number; partner: string; partnerAddress: IAddress; /** * Optional `includeContractMethods` value passed to Paraswap's `/prices`. When * set, Paraswap is restricted to this single contract method so the resulting * calldata's leading selector is deterministic and matches the one the * SwapRouter authorizes for this router. When omitted, Paraswap is free to * pick whichever method is optimal for the route. */ contractMethod?: string; fetchImpl: typeof fetch; signal?: AbortSignal; } export interface IParaswapQuoteOutput { router: IAddress; payload: `0x${string}`; expectedAmountOut: bigint; fetchedAt: number; } /** * Fetch a Paraswap quote and the calldata to execute it on behalf of the * SwapRouter. Throws `AugustNetworkError` on fetch-layer failure and * `AugustServerError` on Paraswap-side error responses or malformed bodies. * * `fetchedAt` is the wall-clock timestamp captured *after* the calldata * response — callers downstream can use it to decide whether the leg is * fresh enough to broadcast (DEX pool state moves; stale calldata may * silently revert at the on-chain slippage check). */ export declare function fetchParaswapQuote(input: IParaswapQuoteInput): Promise; export declare const PARASWAP_DEFAULTS: { readonly partner: "august"; readonly partnerAddress: `0x${string}`; };