import type { Address, PublicClient } from "viem";
/**
 * Estimate the exact fee (in wei) the kernel charges to register a permission.
 *
 * The deployed Base / Base-Sepolia governance uses the LEGACY model:
 *
 *   fee = min(baseFee, cap) + min(byteLength * complexityRate, cap), capped at cap
 *
 * where byteLength is the deployed permission's runtime bytecode length and
 * cap = MAX_PERMISSION_FEE_WEI. Newer governance may instead expose a flat
 * permissionRegistrationFee(); if the legacy views are missing we fall back to
 * that. The fee must be sent exactly: underpaying reverts with InsufficientFee,
 * and overpaying (e.g. sending the cap) needlessly ties up the agent's balance.
 */
export declare function estimatePermissionFee(publicClient: PublicClient, governance: Address, permission: Address): Promise<bigint>;
//# sourceMappingURL=fees.d.ts.map