import type { Address, PermissionTemplate } from "../types.js";
/**
 * Params for SharedAMMLiquidityPermission.
 *
 * Matches the on-chain `_applyConfig` decode exactly:
 *   abi.decode(params, (address[], address[], uint128, bool, bool, bool, bool, bool))
 *     → allowedTargets, allowedTokens, maxAmountPerTokenPerTx,
 *       allowMint, allowIncrease, allowDecrease, allowCollect, allowBurn
 */
export type AmmLiquidityParams = {
    /** Position-manager / router addresses the agent may call (UniV3 NPM, Aerodrome, …). */
    allowedTargets: Address[];
    /** Token addresses the agent may provide as liquidity. */
    allowedTokens: Address[];
    /** Maximum amount of any single token per tx, in that token's base units (uint128). */
    maxAmountPerTokenPerTx: bigint;
    /** Allow mint / open-position (and Aerodrome add-liquidity). */
    allowMint: boolean;
    /** Allow increaseLiquidity. */
    allowIncrease: boolean;
    /** Allow decreaseLiquidity (and Aerodrome remove-liquidity). */
    allowDecrease: boolean;
    /** Allow collect (fee withdrawal). */
    allowCollect: boolean;
    /** Allow burn (close position NFT). */
    allowBurn: boolean;
};
export declare const ammLiquidityTemplate: PermissionTemplate<AmmLiquidityParams>;
//# sourceMappingURL=ammLiquidity.d.ts.map