import type { Address, PermissionTemplate } from "../types.js";
/**
 * Params for SharedBoundedSwapPermission.
 *
 * Matches the on-chain `_applyConfig` decode exactly:
 *   abi.decode(params, (address[], address[], uint256, uint256, address, uint256))
 *     → routers, tokensIn, tokensOut, maxAmountPerTx, maxSlippageBps, priceOracle, maxPriceAgeSec
 */
export type BoundedSwapParams = {
    /** Router/aggregator addresses the agent may call (e.g. Uniswap V3 SwapRouter). */
    routers: Address[];
    /** Token addresses allowed as swap input. */
    tokensIn: Address[];
    /** Token addresses allowed as swap output. */
    tokensOut: Address[];
    /** Maximum input amount of a single swap, in the input token's base units. */
    maxAmountPerTx: bigint;
    /** Maximum allowed slippage in basis points (e.g. 50 = 0.5%). */
    maxSlippageBps: number;
    /** Price oracle used for the slippage check; `address(0)` disables it. */
    priceOracle: Address;
    /** Maximum oracle price age in seconds. Must be > 0 when `priceOracle` is set. */
    maxPriceAgeSec: number;
};
export declare const boundedSwapTemplate: PermissionTemplate<BoundedSwapParams>;
//# sourceMappingURL=boundedSwap.d.ts.map