import { C as ClankerTransactionConfig, d as ClankerFeeLocker_abi, b as ClankerFactory, c as ClankerResult, e as ClankerLocker_v4_abi } from '../write-clanker-contracts-wZSL1UyM.js';
import * as viem from 'viem';
import { WalletClient, Transport, Chain, Account, PublicClient } from 'viem';
import { a as ClankerToken_v4_abi } from '../ClankerToken-Dra5lppJ.js';
import { C as ClankerTokenV4, D as DeployTokenOptions } from '../deploy-BvFgwMVl.js';
export { e as encodeFeeConfig } from '../deploy-BvFgwMVl.js';
import { C as ClankerError } from '../errors-5Gv28Tkr.js';
import 'zod/v4';

type ClankerConfig = {
    wallet?: WalletClient<Transport, Chain, Account>;
    publicClient?: PublicClient;
};
/**
 * Clanker v4
 */
declare class Clanker {
    readonly wallet?: WalletClient<Transport, Chain, Account>;
    readonly publicClient?: PublicClient;
    constructor(config?: ClankerConfig);
    /**
     * Get an abi-typed transaction for claiming rewards on a token.
     *
     * @param token The token to claim for
     * @param rewardRecipient The recipient to claim for
     * @returns Abi transaction
     */
    getClaimRewardsTransaction({ token, rewardRecipient }: {
        token: `0x${string}`;
        rewardRecipient: `0x${string}`;
    }, options?: {
        chain?: Chain;
    }): Promise<ClankerTransactionConfig<typeof ClankerFeeLocker_abi>>;
    /**
     * Simulate claiming rewards. Will use the wallet account on the Clanker class or
     * the passed-in account.
     *
     * @param token The token to simulate reward claiming for
     * @param rewardRecipient The recipient to claim for
     * @param account Optional account to simulate calling claiming for
     * @returns The simulated output
     */
    claimRewardsSimulate({ token, rewardRecipient }: {
        token: `0x${string}`;
        rewardRecipient: `0x${string}`;
    }, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "owner_";
            readonly type: "address";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "constructor";
    }, {
        readonly inputs: readonly [];
        readonly name: "ClaimAmountTooHigh";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidRecipient";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "NoFeesToClaim";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "owner";
            readonly type: "address";
        }];
        readonly name: "OwnableInvalidOwner";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }];
        readonly name: "OwnableUnauthorizedAccount";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ReentrancyGuardReentrantCall";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "SafeERC20FailedOperation";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "TransferFailed";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "Unauthorized";
        readonly type: "error";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "depositor";
            readonly type: "address";
        }];
        readonly name: "AddDepositor";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amountClaimed";
            readonly type: "uint256";
        }];
        readonly name: "ClaimTokens";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "recipient";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amountClaimed";
            readonly type: "uint256";
        }];
        readonly name: "ClaimTokensPermissioned";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "previousOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "OwnershipTransferred";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "sender";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "balance";
            readonly type: "uint256";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "StoreTokens";
        readonly type: "event";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "depositor";
            readonly type: "address";
        }];
        readonly name: "addDepositor";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "depositor";
            readonly type: "address";
        }];
        readonly name: "allowedDepositors";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "isAllowed";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "availableFees";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "claim";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "feesToClaim";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "balance";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "owner";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "renounceOwnership";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "feeOwner";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "storeFees";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bytes4";
            readonly name: "interfaceId";
            readonly type: "bytes4";
        }];
        readonly name: "supportsInterface";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "";
            readonly type: "bool";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "transferOwnership";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }], "addDepositor" | "claim" | "renounceOwnership" | "storeFees" | "transferOwnership"> & {
        error?: undefined;
    }) | ({
        result?: undefined;
        request?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Claim rewards for a clanker token.
     *
     * @param token Token to claim rewards for
     * @param rewardRecipient The recipient to claim for
     * @returns Transaction hash of the claim or error
     */
    claimRewards({ token, rewardRecipient, }: {
        token: `0x${string}`;
        rewardRecipient: `0x${string}`;
    }): Promise<{
        txHash: `0x${string}`;
        error: undefined;
    } | {
        txHash: undefined;
        error: ClankerError;
    }>;
    /**
     * Get an abi-typed transaction for checking rewards on a token.
     *
     * @param token Token to check rewards for
     * @param rewardRecipient The recipient to check rewards for
     * @returns Abi transaction
     */
    getAvailableRewardsTransaction({ token, rewardRecipient }: {
        token: `0x${string}`;
        rewardRecipient: `0x${string}`;
    }, options?: {
        chain?: Chain;
    }): Promise<{
        readonly address: `0x${string}`;
        readonly abi: readonly [{
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner_";
                readonly type: "address";
            }];
            readonly stateMutability: "nonpayable";
            readonly type: "constructor";
        }, {
            readonly inputs: readonly [];
            readonly name: "ClaimAmountTooHigh";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "InvalidRecipient";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "NoFeesToClaim";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "owner";
                readonly type: "address";
            }];
            readonly name: "OwnableInvalidOwner";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "account";
                readonly type: "address";
            }];
            readonly name: "OwnableUnauthorizedAccount";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "ReentrancyGuardReentrantCall";
            readonly type: "error";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "SafeERC20FailedOperation";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "TransferFailed";
            readonly type: "error";
        }, {
            readonly inputs: readonly [];
            readonly name: "Unauthorized";
            readonly type: "error";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "depositor";
                readonly type: "address";
            }];
            readonly name: "AddDepositor";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amountClaimed";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTokens";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amountClaimed";
                readonly type: "uint256";
            }];
            readonly name: "ClaimTokensPermissioned";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "previousOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "OwnershipTransferred";
            readonly type: "event";
        }, {
            readonly anonymous: false;
            readonly inputs: readonly [{
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "sender";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly indexed: true;
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "balance";
                readonly type: "uint256";
            }, {
                readonly indexed: false;
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "StoreTokens";
            readonly type: "event";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "depositor";
                readonly type: "address";
            }];
            readonly name: "addDepositor";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "depositor";
                readonly type: "address";
            }];
            readonly name: "allowedDepositors";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "isAllowed";
                readonly type: "bool";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "availableFees";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "claim";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }];
            readonly name: "feesToClaim";
            readonly outputs: readonly [{
                readonly internalType: "uint256";
                readonly name: "balance";
                readonly type: "uint256";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "owner";
            readonly outputs: readonly [{
                readonly internalType: "address";
                readonly name: "";
                readonly type: "address";
            }];
            readonly stateMutability: "view";
            readonly type: "function";
        }, {
            readonly inputs: readonly [];
            readonly name: "renounceOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "feeOwner";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "uint256";
                readonly name: "amount";
                readonly type: "uint256";
            }];
            readonly name: "storeFees";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "bytes4";
                readonly name: "interfaceId";
                readonly type: "bytes4";
            }];
            readonly name: "supportsInterface";
            readonly outputs: readonly [{
                readonly internalType: "bool";
                readonly name: "";
                readonly type: "bool";
            }];
            readonly stateMutability: "pure";
            readonly type: "function";
        }, {
            readonly inputs: readonly [{
                readonly internalType: "address";
                readonly name: "newOwner";
                readonly type: "address";
            }];
            readonly name: "transferOwnership";
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
            readonly type: "function";
        }];
        readonly functionName: "availableFees";
        readonly args: readonly [`0x${string}`, `0x${string}`];
    }>;
    /**
     * Check available rewards for a token and recipient.
     *
     * @param token Token to check rewards for
     * @param rewardRecipient The recipient to check rewards for
     * @returns Amount of rewards for the `token` and `rewardRecipient`
     */
    availableRewards({ token, rewardRecipient, }: {
        token: `0x${string}`;
        rewardRecipient: `0x${string}`;
    }): Promise<bigint>;
    /**
     * Get an abi-typed transaction for deploying a clanker.
     *
     * @param token The token to deploy
     * @returns Abi transaction
     */
    getDeployTransaction(token: ClankerTokenV4): Promise<ClankerTransactionConfig<readonly [{
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "owner_";
            readonly type: "address";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "constructor";
    }, {
        readonly inputs: readonly [];
        readonly name: "Deprecated";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ExtensionMsgValueMismatch";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ExtensionNotEnabled";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "HookNotEnabled";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidExtension";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidHook";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidLocker";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidMevModule";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "LockerNotEnabled";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "MaxExtensionBpsExceeded";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "MaxExtensionsExceeded";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "MevModuleNotEnabled";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "NotFound";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "OnlyNonOriginatingChains";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "OnlyOriginatingChain";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "owner";
            readonly type: "address";
        }];
        readonly name: "OwnableInvalidOwner";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }];
        readonly name: "OwnableUnauthorizedAccount";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ReentrancyGuardReentrantCall";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "Unauthorized";
        readonly type: "error";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "recipient";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "ClaimTeamFees";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "extension";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "extensionSupply";
            readonly type: "uint256";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "msgValue";
            readonly type: "uint256";
        }];
        readonly name: "ExtensionTriggered";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "previousOwner";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "OwnershipTransferred";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "admin";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "SetAdmin";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "bool";
            readonly name: "deprecated";
            readonly type: "bool";
        }];
        readonly name: "SetDeprecated";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "extension";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "SetExtension";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "hook";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "SetHook";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "locker";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "pool";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "SetLocker";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "mevModule";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "SetMevModule";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "oldTeamFeeRecipient";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "newTeamFeeRecipient";
            readonly type: "address";
        }];
        readonly name: "SetTeamFeeRecipient";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "msgSender";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "tokenAddress";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "tokenAdmin";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "string";
            readonly name: "tokenImage";
            readonly type: "string";
        }, {
            readonly indexed: false;
            readonly internalType: "string";
            readonly name: "tokenName";
            readonly type: "string";
        }, {
            readonly indexed: false;
            readonly internalType: "string";
            readonly name: "tokenSymbol";
            readonly type: "string";
        }, {
            readonly indexed: false;
            readonly internalType: "string";
            readonly name: "tokenMetadata";
            readonly type: "string";
        }, {
            readonly indexed: false;
            readonly internalType: "string";
            readonly name: "tokenContext";
            readonly type: "string";
        }, {
            readonly indexed: false;
            readonly internalType: "int24";
            readonly name: "startingTick";
            readonly type: "int24";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "poolHook";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "PoolId";
            readonly name: "poolId";
            readonly type: "bytes32";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "pairedToken";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "locker";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "mevModule";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "extensionsSupply";
            readonly type: "uint256";
        }, {
            readonly indexed: false;
            readonly internalType: "address[]";
            readonly name: "extensions";
            readonly type: "address[]";
        }];
        readonly name: "TokenCreated";
        readonly type: "event";
    }, {
        readonly inputs: readonly [];
        readonly name: "BPS";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "MAX_EXTENSIONS";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "MAX_EXTENSION_BPS";
        readonly outputs: readonly [{
            readonly internalType: "uint16";
            readonly name: "";
            readonly type: "uint16";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "TOKEN_SUPPLY";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly name: "admins";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "claimTeamFees";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "tokenAdmin";
                    readonly type: "address";
                }, {
                    readonly internalType: "string";
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "symbol";
                    readonly type: "string";
                }, {
                    readonly internalType: "bytes32";
                    readonly name: "salt";
                    readonly type: "bytes32";
                }, {
                    readonly internalType: "string";
                    readonly name: "image";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "metadata";
                    readonly type: "string";
                }, {
                    readonly internalType: "string";
                    readonly name: "context";
                    readonly type: "string";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "originatingChainId";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct IClanker.TokenConfig";
                readonly name: "tokenConfig";
                readonly type: "tuple";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "hook";
                    readonly type: "address";
                }, {
                    readonly internalType: "address";
                    readonly name: "pairedToken";
                    readonly type: "address";
                }, {
                    readonly internalType: "int24";
                    readonly name: "tickIfToken0IsClanker";
                    readonly type: "int24";
                }, {
                    readonly internalType: "int24";
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "poolData";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct IClanker.PoolConfig";
                readonly name: "poolConfig";
                readonly type: "tuple";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "locker";
                    readonly type: "address";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "rewardAdmins";
                    readonly type: "address[]";
                }, {
                    readonly internalType: "address[]";
                    readonly name: "rewardRecipients";
                    readonly type: "address[]";
                }, {
                    readonly internalType: "uint16[]";
                    readonly name: "rewardBps";
                    readonly type: "uint16[]";
                }, {
                    readonly internalType: "int24[]";
                    readonly name: "tickLower";
                    readonly type: "int24[]";
                }, {
                    readonly internalType: "int24[]";
                    readonly name: "tickUpper";
                    readonly type: "int24[]";
                }, {
                    readonly internalType: "uint16[]";
                    readonly name: "positionBps";
                    readonly type: "uint16[]";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "lockerData";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct IClanker.LockerConfig";
                readonly name: "lockerConfig";
                readonly type: "tuple";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "mevModule";
                    readonly type: "address";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "mevModuleData";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct IClanker.MevModuleConfig";
                readonly name: "mevModuleConfig";
                readonly type: "tuple";
            }, {
                readonly components: readonly [{
                    readonly internalType: "address";
                    readonly name: "extension";
                    readonly type: "address";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "msgValue";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint16";
                    readonly name: "extensionBps";
                    readonly type: "uint16";
                }, {
                    readonly internalType: "bytes";
                    readonly name: "extensionData";
                    readonly type: "bytes";
                }];
                readonly internalType: "struct IClanker.ExtensionConfig[]";
                readonly name: "extensionConfigs";
                readonly type: "tuple[]";
            }];
            readonly internalType: "struct IClanker.DeploymentConfig";
            readonly name: "deploymentConfig";
            readonly type: "tuple";
        }];
        readonly name: "deployToken";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "tokenAddress";
            readonly type: "address";
        }];
        readonly stateMutability: "payable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "tokenAdmin";
                readonly type: "address";
            }, {
                readonly internalType: "string";
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly internalType: "bytes32";
                readonly name: "salt";
                readonly type: "bytes32";
            }, {
                readonly internalType: "string";
                readonly name: "image";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "metadata";
                readonly type: "string";
            }, {
                readonly internalType: "string";
                readonly name: "context";
                readonly type: "string";
            }, {
                readonly internalType: "uint256";
                readonly name: "originatingChainId";
                readonly type: "uint256";
            }];
            readonly internalType: "struct IClanker.TokenConfig";
            readonly name: "tokenConfig";
            readonly type: "tuple";
        }];
        readonly name: "deployTokenZeroSupply";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "tokenAddress";
            readonly type: "address";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "deploymentInfoForToken";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "hook";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "locker";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "deprecated";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "locker";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "pool";
            readonly type: "address";
        }];
        readonly name: "enabledLockers";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "teamFeeRecipient_";
            readonly type: "address";
        }];
        readonly name: "initialize";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "owner";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "renounceOwnership";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "admin";
            readonly type: "address";
        }, {
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "setAdmin";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "bool";
            readonly name: "deprecated_";
            readonly type: "bool";
        }];
        readonly name: "setDeprecated";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "extension";
            readonly type: "address";
        }, {
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "setExtension";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "hook";
            readonly type: "address";
        }, {
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "setHook";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "locker";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "pool";
            readonly type: "address";
        }, {
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "setLocker";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "mevModule";
            readonly type: "address";
        }, {
            readonly internalType: "bool";
            readonly name: "enabled";
            readonly type: "bool";
        }];
        readonly name: "setMevModule";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "teamFeeRecipient_";
            readonly type: "address";
        }];
        readonly name: "setTeamFeeRecipient";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "teamFeeRecipient";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }];
        readonly name: "tokenDeploymentInfo";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "token";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "hook";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "locker";
                readonly type: "address";
            }, {
                readonly internalType: "address[]";
                readonly name: "extensions";
                readonly type: "address[]";
            }];
            readonly internalType: "struct IClanker.DeploymentInfo";
            readonly name: "";
            readonly type: "tuple";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "newOwner";
            readonly type: "address";
        }];
        readonly name: "transferOwnership";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }], "deployToken"> & {
        expectedAddress?: `0x${string}`;
    }>;
    /**
     * Simulate a token deployment
     *
     * @param token The token to deploy
     * @param account Optional account for the deployer
     * @returns Abi transaction
     */
    deploySimulate(token: ClankerTokenV4, account?: Account): Promise<(viem.SimulateContractReturnType<ClankerFactory, "renounceOwnership" | "transferOwnership" | "claimRewards" | "deployToken" | "deployTokenWithCustomTeamRewardRecipient" | "deployTokenZeroSupply" | "initialize" | "setAdmin" | "setDeprecated" | "updateLiquidityLocker" | "updateVault" | "claimTeamFees" | "setExtension" | "setHook" | "setLocker" | "setMevModule" | "setTeamFeeRecipient"> & {
        error?: undefined;
    }) | ({
        result?: undefined;
        request?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Deploy a token
     *
     * @param token The token to deploy
     * @param options Optional deployment options
     * @param options.dataSuffix Data to append to transaction calldata (e.g., Base builder codes)
     * @returns Transaction hash and awaitable function for full deployment
     */
    deploy(token: ClankerTokenV4, options?: DeployTokenOptions): Promise<({
        txHash: `0x${string}`;
        waitForTransaction: () => ClankerResult<{
            address: `0x${string}`;
        }>;
    } & {
        error?: undefined;
    }) | ({
        txHash?: undefined;
        waitForTransaction?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Get an abi-typed transaction for updating the reward recipient.
     *
     * @param token The token to update the reward recipient for
     * @param rewardIndex The index of the reward to update
     * @param newRecipient The new recipient address
     * @param options Optional chain configuration
     * @returns Abi transaction
     */
    getUpdateRewardRecipientTransaction({ token, rewardIndex, newRecipient, }: {
        token: `0x${string}`;
        rewardIndex: bigint;
        newRecipient: `0x${string}`;
    }, options?: {
        chain?: Chain;
    }): Promise<ClankerTransactionConfig<typeof ClankerLocker_v4_abi>>;
    /**
     * Get an abi-typed transaction for updating the reward admin.
     *
     * @param token The token to update the reward admin for
     * @param rewardIndex The index of the reward to update
     * @param newAdmin The new admin address
     * @param options Optional chain configuration
     * @returns Abi transaction
     */
    getUpdateRewardAdminTransaction({ token, rewardIndex, newAdmin, }: {
        token: `0x${string}`;
        rewardIndex: bigint;
        newAdmin: `0x${string}`;
    }, options?: {
        chain?: Chain;
    }): Promise<ClankerTransactionConfig<typeof ClankerLocker_v4_abi>>;
    /**
     * Simulate updating the reward recipient. Will use the wallet account on the Clanker class or
     * the passed-in account.
     *
     * @param token The token to update the reward recipient for
     * @param rewardIndex The index of the reward to update
     * @param newRecipient The new recipient address
     * @param account Optional account to simulate calling for
     * @returns The simulated output
     */
    updateRewardRecipientSimulate({ token, rewardIndex, newRecipient, }: {
        token: `0x${string}`;
        rewardIndex: bigint;
        newRecipient: `0x${string}`;
    }, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "owner_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "factory_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "feeLocker_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "positionManager_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "permit2_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "universalRouter_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "poolManager_";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "BASIS_POINTS";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "MAX_LP_POSITIONS";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "MAX_REWARD_PARTICIPANTS";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "collectRewards";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "collectRewardsWithoutUnlock";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "factory";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "feeLocker";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IClankerFeeLocker";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "feePreferences";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "feePreference";
            readonly type: "uint8";
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "onERC721Received";
        readonly inputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "owner";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "permit2";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IPermit2";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "placeLiquidity";
        readonly inputs: readonly [{
            readonly name: "lockerConfig";
            readonly type: "tuple";
            readonly internalType: "struct IClanker.LockerConfig";
            readonly components: readonly [{
                readonly name: "locker";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "rewardAdmins";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardRecipients";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardBps";
                readonly type: "uint16[]";
                readonly internalType: "uint16[]";
            }, {
                readonly name: "tickLower";
                readonly type: "int24[]";
                readonly internalType: "int24[]";
            }, {
                readonly name: "tickUpper";
                readonly type: "int24[]";
                readonly internalType: "int24[]";
            }, {
                readonly name: "positionBps";
                readonly type: "uint16[]";
                readonly internalType: "uint16[]";
            }, {
                readonly name: "lockerData";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }];
        }, {
            readonly name: "poolConfig";
            readonly type: "tuple";
            readonly internalType: "struct IClanker.PoolConfig";
            readonly components: readonly [{
                readonly name: "hook";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "pairedToken";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "tickIfToken0IsClanker";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "tickSpacing";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "poolData";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }];
        }, {
            readonly name: "poolKey";
            readonly type: "tuple";
            readonly internalType: "struct PoolKey";
            readonly components: readonly [{
                readonly name: "currency0";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "currency1";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "fee";
                readonly type: "uint24";
                readonly internalType: "uint24";
            }, {
                readonly name: "tickSpacing";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "hooks";
                readonly type: "address";
                readonly internalType: "contract IHooks";
            }];
        }, {
            readonly name: "poolSupply";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "positionId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "poolManager";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IPoolManager";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "positionManager";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IPositionManager";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "renounceOwnership";
        readonly inputs: readonly [];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "supportsInterface";
        readonly inputs: readonly [{
            readonly name: "interfaceId";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "pure";
    }, {
        readonly type: "function";
        readonly name: "tokenRewards";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "tuple";
            readonly internalType: "struct IClankerLpLocker.TokenRewardInfo";
            readonly components: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "poolKey";
                readonly type: "tuple";
                readonly internalType: "struct PoolKey";
                readonly components: readonly [{
                    readonly name: "currency0";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "currency1";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "fee";
                    readonly type: "uint24";
                    readonly internalType: "uint24";
                }, {
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "hooks";
                    readonly type: "address";
                    readonly internalType: "contract IHooks";
                }];
            }, {
                readonly name: "positionId";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "numPositions";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "rewardBps";
                readonly type: "uint16[]";
                readonly internalType: "uint16[]";
            }, {
                readonly name: "rewardAdmins";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardRecipients";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }];
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "transferOwnership";
        readonly inputs: readonly [{
            readonly name: "newOwner";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "universalRouter";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IUniversalRouter";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "updateFeePreference";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "newFeePreference";
            readonly type: "uint8";
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateRewardAdmin";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "newAdmin";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateRewardRecipient";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "newRecipient";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "version";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "withdrawERC20";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "recipient";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "withdrawETH";
        readonly inputs: readonly [{
            readonly name: "recipient";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "event";
        readonly name: "ClaimedRewards";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount0";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "amount1";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "rewards0";
            readonly type: "uint256[]";
            readonly indexed: false;
            readonly internalType: "uint256[]";
        }, {
            readonly name: "rewards1";
            readonly type: "uint256[]";
            readonly indexed: false;
            readonly internalType: "uint256[]";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "FeePreferenceUpdated";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "oldFeePreference";
            readonly type: "uint8";
            readonly indexed: false;
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }, {
            readonly name: "newFeePreference";
            readonly type: "uint8";
            readonly indexed: true;
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "FeesSwapped";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardToken";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amountSwapped";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "swappedToken";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amountOut";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "InitialFeePreferences";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "feePreference";
            readonly type: "uint8[]";
            readonly indexed: false;
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "OwnershipTransferred";
        readonly inputs: readonly [{
            readonly name: "previousOwner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "newOwner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Received";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "positionId";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RewardAdminUpdated";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "oldAdmin";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "newAdmin";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RewardRecipientUpdated";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "oldRecipient";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "newRecipient";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "TokenRewardAdded";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "poolKey";
            readonly type: "tuple";
            readonly indexed: false;
            readonly internalType: "struct PoolKey";
            readonly components: readonly [{
                readonly name: "currency0";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "currency1";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "fee";
                readonly type: "uint24";
                readonly internalType: "uint24";
            }, {
                readonly name: "tickSpacing";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "hooks";
                readonly type: "address";
                readonly internalType: "contract IHooks";
            }];
        }, {
            readonly name: "poolSupply";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "positionId";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "numPositions";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "rewardBps";
            readonly type: "uint16[]";
            readonly indexed: false;
            readonly internalType: "uint16[]";
        }, {
            readonly name: "rewardAdmins";
            readonly type: "address[]";
            readonly indexed: false;
            readonly internalType: "address[]";
        }, {
            readonly name: "rewardRecipients";
            readonly type: "address[]";
            readonly indexed: false;
            readonly internalType: "address[]";
        }, {
            readonly name: "tickLower";
            readonly type: "int24[]";
            readonly indexed: false;
            readonly internalType: "int24[]";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24[]";
            readonly indexed: false;
            readonly internalType: "int24[]";
        }, {
            readonly name: "positionBps";
            readonly type: "uint16[]";
            readonly indexed: false;
            readonly internalType: "uint16[]";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "InvalidPositionBps";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidRewardBps";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MismatchedPositionInfos";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MismatchedRewardArrays";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NoPositions";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NoRewardRecipients";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "OwnableInvalidOwner";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "OwnableUnauthorizedAccount";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ReentrancyGuardReentrantCall";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "SafeERC20FailedOperation";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "TickRangeLowerThanStartingTick";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TicksBackwards";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TicksNotMultipleOfTickSpacing";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TicksOutOfTickBounds";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TokenAlreadyHasRewards";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TooManyPositions";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TooManyRewardParticipants";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "Unauthorized";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ZeroRewardAddress";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ZeroRewardAmount";
        readonly inputs: readonly [];
    }], "renounceOwnership" | "transferOwnership" | "collectRewards" | "onERC721Received" | "withdrawERC20" | "withdrawETH" | "collectRewardsWithoutUnlock" | "placeLiquidity" | "updateFeePreference" | "updateRewardAdmin" | "updateRewardRecipient"> & {
        error?: undefined;
    }) | ({
        result?: undefined;
        request?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Simulate updating the reward admin. Will use the wallet account on the Clanker class or
     * the passed-in account.
     *
     * @param token The token to update the reward admin for
     * @param rewardIndex The index of the reward to update
     * @param newAdmin The new admin address
     * @param account Optional account to simulate calling for
     * @returns The simulated output
     */
    updateRewardAdminSimulate({ token, rewardIndex, newAdmin, }: {
        token: `0x${string}`;
        rewardIndex: bigint;
        newAdmin: `0x${string}`;
    }, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "owner_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "factory_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "feeLocker_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "positionManager_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "permit2_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "universalRouter_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "poolManager_";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "BASIS_POINTS";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "MAX_LP_POSITIONS";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "MAX_REWARD_PARTICIPANTS";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "collectRewards";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "collectRewardsWithoutUnlock";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "factory";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "feeLocker";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IClankerFeeLocker";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "feePreferences";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "feePreference";
            readonly type: "uint8";
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "onERC721Received";
        readonly inputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "owner";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "permit2";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IPermit2";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "placeLiquidity";
        readonly inputs: readonly [{
            readonly name: "lockerConfig";
            readonly type: "tuple";
            readonly internalType: "struct IClanker.LockerConfig";
            readonly components: readonly [{
                readonly name: "locker";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "rewardAdmins";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardRecipients";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardBps";
                readonly type: "uint16[]";
                readonly internalType: "uint16[]";
            }, {
                readonly name: "tickLower";
                readonly type: "int24[]";
                readonly internalType: "int24[]";
            }, {
                readonly name: "tickUpper";
                readonly type: "int24[]";
                readonly internalType: "int24[]";
            }, {
                readonly name: "positionBps";
                readonly type: "uint16[]";
                readonly internalType: "uint16[]";
            }, {
                readonly name: "lockerData";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }];
        }, {
            readonly name: "poolConfig";
            readonly type: "tuple";
            readonly internalType: "struct IClanker.PoolConfig";
            readonly components: readonly [{
                readonly name: "hook";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "pairedToken";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "tickIfToken0IsClanker";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "tickSpacing";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "poolData";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }];
        }, {
            readonly name: "poolKey";
            readonly type: "tuple";
            readonly internalType: "struct PoolKey";
            readonly components: readonly [{
                readonly name: "currency0";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "currency1";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "fee";
                readonly type: "uint24";
                readonly internalType: "uint24";
            }, {
                readonly name: "tickSpacing";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "hooks";
                readonly type: "address";
                readonly internalType: "contract IHooks";
            }];
        }, {
            readonly name: "poolSupply";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "positionId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "poolManager";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IPoolManager";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "positionManager";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IPositionManager";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "renounceOwnership";
        readonly inputs: readonly [];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "supportsInterface";
        readonly inputs: readonly [{
            readonly name: "interfaceId";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "pure";
    }, {
        readonly type: "function";
        readonly name: "tokenRewards";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "tuple";
            readonly internalType: "struct IClankerLpLocker.TokenRewardInfo";
            readonly components: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "poolKey";
                readonly type: "tuple";
                readonly internalType: "struct PoolKey";
                readonly components: readonly [{
                    readonly name: "currency0";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "currency1";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "fee";
                    readonly type: "uint24";
                    readonly internalType: "uint24";
                }, {
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "hooks";
                    readonly type: "address";
                    readonly internalType: "contract IHooks";
                }];
            }, {
                readonly name: "positionId";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "numPositions";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "rewardBps";
                readonly type: "uint16[]";
                readonly internalType: "uint16[]";
            }, {
                readonly name: "rewardAdmins";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardRecipients";
                readonly type: "address[]";
                readonly internalType: "address[]";
            }];
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "transferOwnership";
        readonly inputs: readonly [{
            readonly name: "newOwner";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "universalRouter";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "contract IUniversalRouter";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "updateFeePreference";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "newFeePreference";
            readonly type: "uint8";
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateRewardAdmin";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "newAdmin";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateRewardRecipient";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "newRecipient";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "version";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "withdrawERC20";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "recipient";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "withdrawETH";
        readonly inputs: readonly [{
            readonly name: "recipient";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "event";
        readonly name: "ClaimedRewards";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount0";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "amount1";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "rewards0";
            readonly type: "uint256[]";
            readonly indexed: false;
            readonly internalType: "uint256[]";
        }, {
            readonly name: "rewards1";
            readonly type: "uint256[]";
            readonly indexed: false;
            readonly internalType: "uint256[]";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "FeePreferenceUpdated";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "oldFeePreference";
            readonly type: "uint8";
            readonly indexed: false;
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }, {
            readonly name: "newFeePreference";
            readonly type: "uint8";
            readonly indexed: true;
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "FeesSwapped";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardToken";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amountSwapped";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "swappedToken";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amountOut";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "InitialFeePreferences";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "feePreference";
            readonly type: "uint8[]";
            readonly indexed: false;
            readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "OwnershipTransferred";
        readonly inputs: readonly [{
            readonly name: "previousOwner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "newOwner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Received";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "positionId";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RewardAdminUpdated";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "oldAdmin";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "newAdmin";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "RewardRecipientUpdated";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "rewardIndex";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "oldRecipient";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "newRecipient";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "TokenRewardAdded";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "poolKey";
            readonly type: "tuple";
            readonly indexed: false;
            readonly internalType: "struct PoolKey";
            readonly components: readonly [{
                readonly name: "currency0";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "currency1";
                readonly type: "address";
                readonly internalType: "Currency";
            }, {
                readonly name: "fee";
                readonly type: "uint24";
                readonly internalType: "uint24";
            }, {
                readonly name: "tickSpacing";
                readonly type: "int24";
                readonly internalType: "int24";
            }, {
                readonly name: "hooks";
                readonly type: "address";
                readonly internalType: "contract IHooks";
            }];
        }, {
            readonly name: "poolSupply";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "positionId";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "numPositions";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "rewardBps";
            readonly type: "uint16[]";
            readonly indexed: false;
            readonly internalType: "uint16[]";
        }, {
            readonly name: "rewardAdmins";
            readonly type: "address[]";
            readonly indexed: false;
            readonly internalType: "address[]";
        }, {
            readonly name: "rewardRecipients";
            readonly type: "address[]";
            readonly indexed: false;
            readonly internalType: "address[]";
        }, {
            readonly name: "tickLower";
            readonly type: "int24[]";
            readonly indexed: false;
            readonly internalType: "int24[]";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24[]";
            readonly indexed: false;
            readonly internalType: "int24[]";
        }, {
            readonly name: "positionBps";
            readonly type: "uint16[]";
            readonly indexed: false;
            readonly internalType: "uint16[]";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "InvalidPositionBps";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidRewardBps";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MismatchedPositionInfos";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "MismatchedRewardArrays";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NoPositions";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NoRewardRecipients";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "OwnableInvalidOwner";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "OwnableUnauthorizedAccount";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ReentrancyGuardReentrantCall";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "SafeERC20FailedOperation";
        readonly inputs: readonly [{
            readonly name: "token";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "TickRangeLowerThanStartingTick";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TicksBackwards";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TicksNotMultipleOfTickSpacing";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TicksOutOfTickBounds";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TokenAlreadyHasRewards";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TooManyPositions";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "TooManyRewardParticipants";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "Unauthorized";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ZeroRewardAddress";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ZeroRewardAmount";
        readonly inputs: readonly [];
    }], "renounceOwnership" | "transferOwnership" | "collectRewards" | "onERC721Received" | "withdrawERC20" | "withdrawETH" | "collectRewardsWithoutUnlock" | "placeLiquidity" | "updateFeePreference" | "updateRewardAdmin" | "updateRewardRecipient"> & {
        error?: undefined;
    }) | ({
        result?: undefined;
        request?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Update the reward recipient for a token.
     *
     * @param token The token to update the reward recipient for
     * @param rewardIndex The index of the reward to update
     * @param newRecipient The new recipient address
     * @returns Transaction hash of the update or error
     */
    updateRewardRecipient({ token, rewardIndex, newRecipient, }: {
        token: `0x${string}`;
        rewardIndex: bigint;
        newRecipient: `0x${string}`;
    }): Promise<{
        txHash: `0x${string}`;
        error: undefined;
    } | {
        txHash: undefined;
        error: ClankerError;
    }>;
    /**
     * Update the reward admin for a token.
     *
     * @param token The token to update the reward admin for
     * @param rewardIndex The index of the reward to update
     * @param newAdmin The new admin address
     * @returns Transaction hash of the update or error
     */
    updateRewardAdmin({ token, rewardIndex, newAdmin, }: {
        token: `0x${string}`;
        rewardIndex: bigint;
        newAdmin: `0x${string}`;
    }): Promise<{
        txHash: `0x${string}`;
        error: undefined;
    } | {
        txHash: undefined;
        error: ClankerError;
    }>;
    /**
     * Get an abi-typed transaction for claiming vaulted tokens.
     *
     * @param token The token to claim for
     * @returns Abi transaction
     */
    getVaultClaimTransaction({ token }: {
        token: `0x${string}`;
    }, options?: {
        chain?: Chain;
    }): Promise<any>;
    /**
     * Claim vaulted tokens for a clanker token.
     *
     * @param token Token to claim vaulted tokens for
     * @returns Transaction hash of the claim or error
     */
    claimVaultedTokens({ token }: {
        token: `0x${string}`;
    }): Promise<({
        txHash: `0x${string}`;
    } & {
        error?: undefined;
    }) | ({
        txHash?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Get the amount of vaulted tokens available to claim.
     *
     * @param token Token to check claimable vault amount for
     * @returns Amount of tokens available to claim
     */
    getVaultClaimableAmount({ token }: {
        token: `0x${string}`;
    }): Promise<bigint>;
    /**
     * Get the transaction object for claiming vaulted tokens (for offline signing or inspection).
     *
     * @param token The token to claim for
     * @param chainId Optional chain ID to override default
     * @returns Transaction object for claiming vaulted tokens
     */
    static getVaultClaimTransactionObject({ token, chainId, vaultAddress, }: {
        token: `0x${string}`;
        chainId?: number;
        vaultAddress?: `0x${string}`;
    }): {
        address: `0x${string}`;
        abi: readonly [{
            readonly type: "constructor";
            readonly inputs: readonly [{
                readonly name: "factory_";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "MIN_LOCKUP_DURATION";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "allocation";
            readonly inputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "amountTotal";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "amountClaimed";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "lockupEndTime";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "vestingEndTime";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "admin";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "amountAvailableToClaim";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "claim";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "editAllocationAdmin";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "newAdmin";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "factory";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "receiveTokens";
            readonly inputs: readonly [{
                readonly name: "deploymentConfig";
                readonly type: "tuple";
                readonly internalType: "struct IClanker.DeploymentConfig";
                readonly components: readonly [{
                    readonly name: "tokenConfig";
                    readonly type: "tuple";
                    readonly internalType: "struct IClanker.TokenConfig";
                    readonly components: readonly [{
                        readonly name: "tokenAdmin";
                        readonly type: "address";
                        readonly internalType: "address";
                    }, {
                        readonly name: "name";
                        readonly type: "string";
                        readonly internalType: "string";
                    }, {
                        readonly name: "symbol";
                        readonly type: "string";
                        readonly internalType: "string";
                    }, {
                        readonly name: "salt";
                        readonly type: "bytes32";
                        readonly internalType: "bytes32";
                    }, {
                        readonly name: "image";
                        readonly type: "string";
                        readonly internalType: "string";
                    }, {
                        readonly name: "metadata";
                        readonly type: "string";
                        readonly internalType: "string";
                    }, {
                        readonly name: "context";
                        readonly type: "string";
                        readonly internalType: "string";
                    }, {
                        readonly name: "originatingChainId";
                        readonly type: "uint256";
                        readonly internalType: "uint256";
                    }];
                }, {
                    readonly name: "poolConfig";
                    readonly type: "tuple";
                    readonly internalType: "struct IClanker.PoolConfig";
                    readonly components: readonly [{
                        readonly name: "hook";
                        readonly type: "address";
                        readonly internalType: "address";
                    }, {
                        readonly name: "pairedToken";
                        readonly type: "address";
                        readonly internalType: "address";
                    }, {
                        readonly name: "tickIfToken0IsClanker";
                        readonly type: "int24";
                        readonly internalType: "int24";
                    }, {
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                        readonly internalType: "int24";
                    }, {
                        readonly name: "poolData";
                        readonly type: "bytes";
                        readonly internalType: "bytes";
                    }];
                }, {
                    readonly name: "lockerConfig";
                    readonly type: "tuple";
                    readonly internalType: "struct IClanker.LockerConfig";
                    readonly components: readonly [{
                        readonly name: "locker";
                        readonly type: "address";
                        readonly internalType: "address";
                    }, {
                        readonly name: "rewardAdmins";
                        readonly type: "address[]";
                        readonly internalType: "address[]";
                    }, {
                        readonly name: "rewardRecipients";
                        readonly type: "address[]";
                        readonly internalType: "address[]";
                    }, {
                        readonly name: "rewardBps";
                        readonly type: "uint16[]";
                        readonly internalType: "uint16[]";
                    }, {
                        readonly name: "tickLower";
                        readonly type: "int24[]";
                        readonly internalType: "int24[]";
                    }, {
                        readonly name: "tickUpper";
                        readonly type: "int24[]";
                        readonly internalType: "int24[]";
                    }, {
                        readonly name: "positionBps";
                        readonly type: "uint16[]";
                        readonly internalType: "uint16[]";
                    }, {
                        readonly name: "lockerData";
                        readonly type: "bytes";
                        readonly internalType: "bytes";
                    }];
                }, {
                    readonly name: "mevModuleConfig";
                    readonly type: "tuple";
                    readonly internalType: "struct IClanker.MevModuleConfig";
                    readonly components: readonly [{
                        readonly name: "mevModule";
                        readonly type: "address";
                        readonly internalType: "address";
                    }, {
                        readonly name: "mevModuleData";
                        readonly type: "bytes";
                        readonly internalType: "bytes";
                    }];
                }, {
                    readonly name: "extensionConfigs";
                    readonly type: "tuple[]";
                    readonly internalType: "struct IClanker.ExtensionConfig[]";
                    readonly components: readonly [{
                        readonly name: "extension";
                        readonly type: "address";
                        readonly internalType: "address";
                    }, {
                        readonly name: "msgValue";
                        readonly type: "uint256";
                        readonly internalType: "uint256";
                    }, {
                        readonly name: "extensionBps";
                        readonly type: "uint16";
                        readonly internalType: "uint16";
                    }, {
                        readonly name: "extensionData";
                        readonly type: "bytes";
                        readonly internalType: "bytes";
                    }];
                }];
            }, {
                readonly name: "";
                readonly type: "tuple";
                readonly internalType: "struct PoolKey";
                readonly components: readonly [{
                    readonly name: "currency0";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "currency1";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "fee";
                    readonly type: "uint24";
                    readonly internalType: "uint24";
                }, {
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "hooks";
                    readonly type: "address";
                    readonly internalType: "contract IHooks";
                }];
            }, {
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "extensionSupply";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "extensionIndex";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "payable";
        }, {
            readonly type: "function";
            readonly name: "supportsInterface";
            readonly inputs: readonly [{
                readonly name: "interfaceId";
                readonly type: "bytes4";
                readonly internalType: "bytes4";
            }];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "bool";
                readonly internalType: "bool";
            }];
            readonly stateMutability: "pure";
        }, {
            readonly type: "event";
            readonly name: "AllocationAdminUpdated";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "oldAdmin";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "newAdmin";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "AllocationClaimed";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "amount";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "remainingAmount";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "AllocationCreated";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "admin";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "supply";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "lockupDuration";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "vestingDuration";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "error";
            readonly name: "AllocationAlreadyExists";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "AllocationNotUnlocked";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "InvalidMsgValue";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "InvalidVaultAdmin";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "InvalidVaultBps";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "NoBalanceToClaim";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "ReentrancyGuardReentrantCall";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TransferFailed";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "Unauthorized";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "VaultLockupDurationTooShort";
            readonly inputs: readonly [];
        }];
        functionName: string;
        args: `0x${string}`[];
        chainId: number | undefined;
    };
    /**
     * Get an abi-typed transaction for updating the token image.
     *
     * @param token The token to update the image for
     * @param newImage The new image URL
     * @param options Optional chain configuration
     * @returns Abi transaction
     */
    getUpdateImageTransaction({ token, newImage }: {
        token: `0x${string}`;
        newImage: string;
    }, options?: {
        chain?: Chain;
    }): Promise<ClankerTransactionConfig<typeof ClankerToken_v4_abi>>;
    /**
     * Get an abi-typed transaction for updating the token metadata.
     *
     * @param token The token to update the metadata for
     * @param metadata The new metadata object
     * @param options Optional chain configuration
     * @returns Abi transaction
     */
    getUpdateMetadataTransaction({ token, metadata }: {
        token: `0x${string}`;
        metadata: string;
    }, options?: {
        chain?: Chain;
    }): Promise<ClankerTransactionConfig<typeof ClankerToken_v4_abi>>;
    /**
     * Simulate updating the token image. Will use the wallet account on the Clanker class or
     * the passed-in account.
     *
     * @param token The token to update the image for
     * @param newImage The new image URL
     * @param account Optional account to simulate calling for
     * @returns The simulated output
     */
    updateImageSimulate({ token, newImage }: {
        token: `0x${string}`;
        newImage: string;
    }, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "name_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "symbol_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "maxSupply_";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "admin_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "image_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "metadata_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "context_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "initialSupplyChainId_";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "CLOCK_MODE";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "DOMAIN_SEPARATOR";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "admin";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "allData";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "originalAdmin";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "admin";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "image";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "metadata";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "context";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "allowance";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "approve";
        readonly inputs: readonly [{
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "balanceOf";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "burn";
        readonly inputs: readonly [{
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "burnFrom";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "checkpoints";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "pos";
            readonly type: "uint32";
            readonly internalType: "uint32";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "tuple";
            readonly internalType: "struct Checkpoints.Checkpoint208";
            readonly components: readonly [{
                readonly name: "_key";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "_value";
                readonly type: "uint208";
                readonly internalType: "uint208";
            }];
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "clock";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "context";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "crosschainBurn";
        readonly inputs: readonly [{
            readonly name: "_from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "crosschainMint";
        readonly inputs: readonly [{
            readonly name: "_to";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "decimals";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "delegate";
        readonly inputs: readonly [{
            readonly name: "delegatee";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "delegateBySig";
        readonly inputs: readonly [{
            readonly name: "delegatee";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "nonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "expiry";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "v";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }, {
            readonly name: "r";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "s";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "delegates";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "eip712Domain";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "fields";
            readonly type: "bytes1";
            readonly internalType: "bytes1";
        }, {
            readonly name: "name";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "version";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "chainId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "verifyingContract";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "extensions";
            readonly type: "uint256[]";
            readonly internalType: "uint256[]";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getPastTotalSupply";
        readonly inputs: readonly [{
            readonly name: "timepoint";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getPastVotes";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "timepoint";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getVotes";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "imageUrl";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "isVerified";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "metadata";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "name";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "nonces";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "numCheckpoints";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint32";
            readonly internalType: "uint32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "originalAdmin";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "permit";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "deadline";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "v";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }, {
            readonly name: "r";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "s";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "supportsInterface";
        readonly inputs: readonly [{
            readonly name: "_interfaceId";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "pure";
    }, {
        readonly type: "function";
        readonly name: "symbol";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "totalSupply";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "transfer";
        readonly inputs: readonly [{
            readonly name: "to";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "transferFrom";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "to";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateAdmin";
        readonly inputs: readonly [{
            readonly name: "admin_";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateImage";
        readonly inputs: readonly [{
            readonly name: "image_";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateMetadata";
        readonly inputs: readonly [{
            readonly name: "metadata_";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "verify";
        readonly inputs: readonly [];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "event";
        readonly name: "Approval";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "CrosschainBurn";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "CrosschainMint";
        readonly inputs: readonly [{
            readonly name: "to";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "DelegateChanged";
        readonly inputs: readonly [{
            readonly name: "delegator";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "fromDelegate";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "toDelegate";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "DelegateVotesChanged";
        readonly inputs: readonly [{
            readonly name: "delegate";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "previousVotes";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "newVotes";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "EIP712DomainChanged";
        readonly inputs: readonly [];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Transfer";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "to";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "UpdateAdmin";
        readonly inputs: readonly [{
            readonly name: "oldAdmin";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "newAdmin";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "UpdateImage";
        readonly inputs: readonly [{
            readonly name: "image";
            readonly type: "string";
            readonly indexed: false;
            readonly internalType: "string";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "UpdateMetadata";
        readonly inputs: readonly [{
            readonly name: "metadata";
            readonly type: "string";
            readonly indexed: false;
            readonly internalType: "string";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Verified";
        readonly inputs: readonly [{
            readonly name: "admin";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "AlreadyVerified";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "CheckpointUnorderedInsertion";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ECDSAInvalidSignature";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ECDSAInvalidSignatureLength";
        readonly inputs: readonly [{
            readonly name: "length";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ECDSAInvalidSignatureS";
        readonly inputs: readonly [{
            readonly name: "s";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20ExceededSafeSupply";
        readonly inputs: readonly [{
            readonly name: "increasedSupply";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "cap";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InsufficientAllowance";
        readonly inputs: readonly [{
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "allowance";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "needed";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InsufficientBalance";
        readonly inputs: readonly [{
            readonly name: "sender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "balance";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "needed";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidApprover";
        readonly inputs: readonly [{
            readonly name: "approver";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidReceiver";
        readonly inputs: readonly [{
            readonly name: "receiver";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidSender";
        readonly inputs: readonly [{
            readonly name: "sender";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidSpender";
        readonly inputs: readonly [{
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC2612ExpiredSignature";
        readonly inputs: readonly [{
            readonly name: "deadline";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC2612InvalidSigner";
        readonly inputs: readonly [{
            readonly name: "signer";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC5805FutureLookup";
        readonly inputs: readonly [{
            readonly name: "timepoint";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "clock";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC6372InconsistentClock";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidAccountNonce";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "currentNonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "InvalidShortString";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NotAdmin";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NotOriginalAdmin";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "SafeCastOverflowedUintDowncast";
        readonly inputs: readonly [{
            readonly name: "bits";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "StringTooLong";
        readonly inputs: readonly [{
            readonly name: "str";
            readonly type: "string";
            readonly internalType: "string";
        }];
    }, {
        readonly type: "error";
        readonly name: "Unauthorized";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "VotesExpiredSignature";
        readonly inputs: readonly [{
            readonly name: "expiry";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }], "approve" | "burn" | "burnFrom" | "crosschainBurn" | "crosschainMint" | "delegate" | "delegateBySig" | "permit" | "transfer" | "transferFrom" | "updateImage" | "updateMetadata" | "verify" | "updateAdmin"> & {
        error?: undefined;
    }) | ({
        result?: undefined;
        request?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Simulate updating the token metadata. Will use the wallet account on the Clanker class or
     * the passed-in account.
     *
     * @param token The token to update the metadata for
     * @param metadata The new metadata object
     * @param account Optional account to simulate calling for
     * @returns The simulated output
     */
    updateMetadataSimulate({ token, metadata }: {
        token: `0x${string}`;
        metadata: string;
    }, account?: Account): Promise<(viem.SimulateContractReturnType<readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "name_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "symbol_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "maxSupply_";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "admin_";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "image_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "metadata_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "context_";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "initialSupplyChainId_";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "CLOCK_MODE";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "DOMAIN_SEPARATOR";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "admin";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "allData";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "originalAdmin";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "admin";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "image";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "metadata";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "context";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "allowance";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "approve";
        readonly inputs: readonly [{
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "balanceOf";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "burn";
        readonly inputs: readonly [{
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "burnFrom";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "checkpoints";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "pos";
            readonly type: "uint32";
            readonly internalType: "uint32";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "tuple";
            readonly internalType: "struct Checkpoints.Checkpoint208";
            readonly components: readonly [{
                readonly name: "_key";
                readonly type: "uint48";
                readonly internalType: "uint48";
            }, {
                readonly name: "_value";
                readonly type: "uint208";
                readonly internalType: "uint208";
            }];
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "clock";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "context";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "crosschainBurn";
        readonly inputs: readonly [{
            readonly name: "_from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "crosschainMint";
        readonly inputs: readonly [{
            readonly name: "_to";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "decimals";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "delegate";
        readonly inputs: readonly [{
            readonly name: "delegatee";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "delegateBySig";
        readonly inputs: readonly [{
            readonly name: "delegatee";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "nonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "expiry";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "v";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }, {
            readonly name: "r";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "s";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "delegates";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "eip712Domain";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "fields";
            readonly type: "bytes1";
            readonly internalType: "bytes1";
        }, {
            readonly name: "name";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "version";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "chainId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "verifyingContract";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "extensions";
            readonly type: "uint256[]";
            readonly internalType: "uint256[]";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getPastTotalSupply";
        readonly inputs: readonly [{
            readonly name: "timepoint";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getPastVotes";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "timepoint";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "getVotes";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "imageUrl";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "isVerified";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "metadata";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "name";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "nonces";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "numCheckpoints";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint32";
            readonly internalType: "uint32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "originalAdmin";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "permit";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "deadline";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "v";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }, {
            readonly name: "r";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "s";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "supportsInterface";
        readonly inputs: readonly [{
            readonly name: "_interfaceId";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "pure";
    }, {
        readonly type: "function";
        readonly name: "symbol";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "totalSupply";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "transfer";
        readonly inputs: readonly [{
            readonly name: "to";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "transferFrom";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "to";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateAdmin";
        readonly inputs: readonly [{
            readonly name: "admin_";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateImage";
        readonly inputs: readonly [{
            readonly name: "image_";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "updateMetadata";
        readonly inputs: readonly [{
            readonly name: "metadata_";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "verify";
        readonly inputs: readonly [];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "event";
        readonly name: "Approval";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "CrosschainBurn";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "CrosschainMint";
        readonly inputs: readonly [{
            readonly name: "to";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "DelegateChanged";
        readonly inputs: readonly [{
            readonly name: "delegator";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "fromDelegate";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "toDelegate";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "DelegateVotesChanged";
        readonly inputs: readonly [{
            readonly name: "delegate";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "previousVotes";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "newVotes";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "EIP712DomainChanged";
        readonly inputs: readonly [];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Transfer";
        readonly inputs: readonly [{
            readonly name: "from";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "to";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "UpdateAdmin";
        readonly inputs: readonly [{
            readonly name: "oldAdmin";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "newAdmin";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "UpdateImage";
        readonly inputs: readonly [{
            readonly name: "image";
            readonly type: "string";
            readonly indexed: false;
            readonly internalType: "string";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "UpdateMetadata";
        readonly inputs: readonly [{
            readonly name: "metadata";
            readonly type: "string";
            readonly indexed: false;
            readonly internalType: "string";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Verified";
        readonly inputs: readonly [{
            readonly name: "admin";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "AlreadyVerified";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "CheckpointUnorderedInsertion";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ECDSAInvalidSignature";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "ECDSAInvalidSignatureLength";
        readonly inputs: readonly [{
            readonly name: "length";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ECDSAInvalidSignatureS";
        readonly inputs: readonly [{
            readonly name: "s";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20ExceededSafeSupply";
        readonly inputs: readonly [{
            readonly name: "increasedSupply";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "cap";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InsufficientAllowance";
        readonly inputs: readonly [{
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "allowance";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "needed";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InsufficientBalance";
        readonly inputs: readonly [{
            readonly name: "sender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "balance";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "needed";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidApprover";
        readonly inputs: readonly [{
            readonly name: "approver";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidReceiver";
        readonly inputs: readonly [{
            readonly name: "receiver";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidSender";
        readonly inputs: readonly [{
            readonly name: "sender";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC20InvalidSpender";
        readonly inputs: readonly [{
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC2612ExpiredSignature";
        readonly inputs: readonly [{
            readonly name: "deadline";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC2612InvalidSigner";
        readonly inputs: readonly [{
            readonly name: "signer";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC5805FutureLookup";
        readonly inputs: readonly [{
            readonly name: "timepoint";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "clock";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }];
    }, {
        readonly type: "error";
        readonly name: "ERC6372InconsistentClock";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidAccountNonce";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "currentNonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "InvalidShortString";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NotAdmin";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "NotOriginalAdmin";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "SafeCastOverflowedUintDowncast";
        readonly inputs: readonly [{
            readonly name: "bits";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }, {
            readonly name: "value";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }, {
        readonly type: "error";
        readonly name: "StringTooLong";
        readonly inputs: readonly [{
            readonly name: "str";
            readonly type: "string";
            readonly internalType: "string";
        }];
    }, {
        readonly type: "error";
        readonly name: "Unauthorized";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "VotesExpiredSignature";
        readonly inputs: readonly [{
            readonly name: "expiry";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }], "approve" | "burn" | "burnFrom" | "crosschainBurn" | "crosschainMint" | "delegate" | "delegateBySig" | "permit" | "transfer" | "transferFrom" | "updateImage" | "updateMetadata" | "verify" | "updateAdmin"> & {
        error?: undefined;
    }) | ({
        result?: undefined;
        request?: undefined;
    } & {
        error: ClankerError;
    })>;
    /**
     * Update the token image.
     *
     * @param token The token to update the image for
     * @param newImage The new image URL
     * @returns Transaction hash of the update or error
     */
    updateImage({ token, newImage, }: {
        token: `0x${string}`;
        newImage: string;
    }): Promise<{
        txHash: `0x${string}`;
        error: undefined;
    } | {
        txHash: undefined;
        error: ClankerError;
    }>;
    /**
     * Update the token metadata.
     *
     * @param token The token to update the metadata for
     * @param metadata The new metadata object
     * @returns Transaction hash of the update or error
     */
    updateMetadata({ token, metadata, }: {
        token: `0x${string}`;
        metadata: string;
    }): Promise<{
        txHash: `0x${string}`;
        error: undefined;
    } | {
        txHash: undefined;
        error: ClankerError;
    }>;
    /**
     * Get the transaction config for reading token rewards information from the locker contract.
     *
     * @param token The token address to get rewards info for
     * @param options Optional chain configuration
     * @returns Abi transaction config for reading token rewards
     */
    getTokenRewardsTransaction({ token }: {
        token: `0x${string}`;
    }, options?: {
        chain?: Chain;
    }): Promise<{
        readonly address: `0x${string}`;
        readonly abi: readonly [{
            readonly type: "constructor";
            readonly inputs: readonly [{
                readonly name: "owner_";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "factory_";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "feeLocker_";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "positionManager_";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "permit2_";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "universalRouter_";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "poolManager_";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "BASIS_POINTS";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "MAX_LP_POSITIONS";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "MAX_REWARD_PARTICIPANTS";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "collectRewards";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "collectRewardsWithoutUnlock";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "factory";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "feeLocker";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "contract IClankerFeeLocker";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "feePreferences";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly outputs: readonly [{
                readonly name: "feePreference";
                readonly type: "uint8";
                readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "onERC721Received";
            readonly inputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "from";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "id";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "";
                readonly type: "bytes";
                readonly internalType: "bytes";
            }];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "bytes4";
                readonly internalType: "bytes4";
            }];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "owner";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "permit2";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "contract IPermit2";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "placeLiquidity";
            readonly inputs: readonly [{
                readonly name: "lockerConfig";
                readonly type: "tuple";
                readonly internalType: "struct IClanker.LockerConfig";
                readonly components: readonly [{
                    readonly name: "locker";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "rewardAdmins";
                    readonly type: "address[]";
                    readonly internalType: "address[]";
                }, {
                    readonly name: "rewardRecipients";
                    readonly type: "address[]";
                    readonly internalType: "address[]";
                }, {
                    readonly name: "rewardBps";
                    readonly type: "uint16[]";
                    readonly internalType: "uint16[]";
                }, {
                    readonly name: "tickLower";
                    readonly type: "int24[]";
                    readonly internalType: "int24[]";
                }, {
                    readonly name: "tickUpper";
                    readonly type: "int24[]";
                    readonly internalType: "int24[]";
                }, {
                    readonly name: "positionBps";
                    readonly type: "uint16[]";
                    readonly internalType: "uint16[]";
                }, {
                    readonly name: "lockerData";
                    readonly type: "bytes";
                    readonly internalType: "bytes";
                }];
            }, {
                readonly name: "poolConfig";
                readonly type: "tuple";
                readonly internalType: "struct IClanker.PoolConfig";
                readonly components: readonly [{
                    readonly name: "hook";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "pairedToken";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "tickIfToken0IsClanker";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "poolData";
                    readonly type: "bytes";
                    readonly internalType: "bytes";
                }];
            }, {
                readonly name: "poolKey";
                readonly type: "tuple";
                readonly internalType: "struct PoolKey";
                readonly components: readonly [{
                    readonly name: "currency0";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "currency1";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "fee";
                    readonly type: "uint24";
                    readonly internalType: "uint24";
                }, {
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "hooks";
                    readonly type: "address";
                    readonly internalType: "contract IHooks";
                }];
            }, {
                readonly name: "poolSupply";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [{
                readonly name: "positionId";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "poolManager";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "contract IPoolManager";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "positionManager";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "contract IPositionManager";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "renounceOwnership";
            readonly inputs: readonly [];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "supportsInterface";
            readonly inputs: readonly [{
                readonly name: "interfaceId";
                readonly type: "bytes4";
                readonly internalType: "bytes4";
            }];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "bool";
                readonly internalType: "bool";
            }];
            readonly stateMutability: "pure";
        }, {
            readonly type: "function";
            readonly name: "tokenRewards";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "tuple";
                readonly internalType: "struct IClankerLpLocker.TokenRewardInfo";
                readonly components: readonly [{
                    readonly name: "token";
                    readonly type: "address";
                    readonly internalType: "address";
                }, {
                    readonly name: "poolKey";
                    readonly type: "tuple";
                    readonly internalType: "struct PoolKey";
                    readonly components: readonly [{
                        readonly name: "currency0";
                        readonly type: "address";
                        readonly internalType: "Currency";
                    }, {
                        readonly name: "currency1";
                        readonly type: "address";
                        readonly internalType: "Currency";
                    }, {
                        readonly name: "fee";
                        readonly type: "uint24";
                        readonly internalType: "uint24";
                    }, {
                        readonly name: "tickSpacing";
                        readonly type: "int24";
                        readonly internalType: "int24";
                    }, {
                        readonly name: "hooks";
                        readonly type: "address";
                        readonly internalType: "contract IHooks";
                    }];
                }, {
                    readonly name: "positionId";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "numPositions";
                    readonly type: "uint256";
                    readonly internalType: "uint256";
                }, {
                    readonly name: "rewardBps";
                    readonly type: "uint16[]";
                    readonly internalType: "uint16[]";
                }, {
                    readonly name: "rewardAdmins";
                    readonly type: "address[]";
                    readonly internalType: "address[]";
                }, {
                    readonly name: "rewardRecipients";
                    readonly type: "address[]";
                    readonly internalType: "address[]";
                }];
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "transferOwnership";
            readonly inputs: readonly [{
                readonly name: "newOwner";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "universalRouter";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "address";
                readonly internalType: "contract IUniversalRouter";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "updateFeePreference";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "rewardIndex";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "newFeePreference";
                readonly type: "uint8";
                readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "updateRewardAdmin";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "rewardIndex";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "newAdmin";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "updateRewardRecipient";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "rewardIndex";
                readonly type: "uint256";
                readonly internalType: "uint256";
            }, {
                readonly name: "newRecipient";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "version";
            readonly inputs: readonly [];
            readonly outputs: readonly [{
                readonly name: "";
                readonly type: "string";
                readonly internalType: "string";
            }];
            readonly stateMutability: "view";
        }, {
            readonly type: "function";
            readonly name: "withdrawERC20";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }, {
                readonly name: "recipient";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "function";
            readonly name: "withdrawETH";
            readonly inputs: readonly [{
                readonly name: "recipient";
                readonly type: "address";
                readonly internalType: "address";
            }];
            readonly outputs: readonly [];
            readonly stateMutability: "nonpayable";
        }, {
            readonly type: "event";
            readonly name: "ClaimedRewards";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "amount0";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "amount1";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "rewards0";
                readonly type: "uint256[]";
                readonly indexed: false;
                readonly internalType: "uint256[]";
            }, {
                readonly name: "rewards1";
                readonly type: "uint256[]";
                readonly indexed: false;
                readonly internalType: "uint256[]";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "FeePreferenceUpdated";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "rewardIndex";
                readonly type: "uint256";
                readonly indexed: true;
                readonly internalType: "uint256";
            }, {
                readonly name: "oldFeePreference";
                readonly type: "uint8";
                readonly indexed: false;
                readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
            }, {
                readonly name: "newFeePreference";
                readonly type: "uint8";
                readonly indexed: true;
                readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "FeesSwapped";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "rewardToken";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "amountSwapped";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "swappedToken";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "amountOut";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "InitialFeePreferences";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "feePreference";
                readonly type: "uint8[]";
                readonly indexed: false;
                readonly internalType: "enum IClankerLpLockerFeeConversion.FeeIn[]";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "OwnershipTransferred";
            readonly inputs: readonly [{
                readonly name: "previousOwner";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "newOwner";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "Received";
            readonly inputs: readonly [{
                readonly name: "from";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "positionId";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "RewardAdminUpdated";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "rewardIndex";
                readonly type: "uint256";
                readonly indexed: true;
                readonly internalType: "uint256";
            }, {
                readonly name: "oldAdmin";
                readonly type: "address";
                readonly indexed: false;
                readonly internalType: "address";
            }, {
                readonly name: "newAdmin";
                readonly type: "address";
                readonly indexed: false;
                readonly internalType: "address";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "RewardRecipientUpdated";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: true;
                readonly internalType: "address";
            }, {
                readonly name: "rewardIndex";
                readonly type: "uint256";
                readonly indexed: true;
                readonly internalType: "uint256";
            }, {
                readonly name: "oldRecipient";
                readonly type: "address";
                readonly indexed: false;
                readonly internalType: "address";
            }, {
                readonly name: "newRecipient";
                readonly type: "address";
                readonly indexed: false;
                readonly internalType: "address";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "event";
            readonly name: "TokenRewardAdded";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly indexed: false;
                readonly internalType: "address";
            }, {
                readonly name: "poolKey";
                readonly type: "tuple";
                readonly indexed: false;
                readonly internalType: "struct PoolKey";
                readonly components: readonly [{
                    readonly name: "currency0";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "currency1";
                    readonly type: "address";
                    readonly internalType: "Currency";
                }, {
                    readonly name: "fee";
                    readonly type: "uint24";
                    readonly internalType: "uint24";
                }, {
                    readonly name: "tickSpacing";
                    readonly type: "int24";
                    readonly internalType: "int24";
                }, {
                    readonly name: "hooks";
                    readonly type: "address";
                    readonly internalType: "contract IHooks";
                }];
            }, {
                readonly name: "poolSupply";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "positionId";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "numPositions";
                readonly type: "uint256";
                readonly indexed: false;
                readonly internalType: "uint256";
            }, {
                readonly name: "rewardBps";
                readonly type: "uint16[]";
                readonly indexed: false;
                readonly internalType: "uint16[]";
            }, {
                readonly name: "rewardAdmins";
                readonly type: "address[]";
                readonly indexed: false;
                readonly internalType: "address[]";
            }, {
                readonly name: "rewardRecipients";
                readonly type: "address[]";
                readonly indexed: false;
                readonly internalType: "address[]";
            }, {
                readonly name: "tickLower";
                readonly type: "int24[]";
                readonly indexed: false;
                readonly internalType: "int24[]";
            }, {
                readonly name: "tickUpper";
                readonly type: "int24[]";
                readonly indexed: false;
                readonly internalType: "int24[]";
            }, {
                readonly name: "positionBps";
                readonly type: "uint16[]";
                readonly indexed: false;
                readonly internalType: "uint16[]";
            }];
            readonly anonymous: false;
        }, {
            readonly type: "error";
            readonly name: "InvalidPositionBps";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "InvalidRewardBps";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "MismatchedPositionInfos";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "MismatchedRewardArrays";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "NoPositions";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "NoRewardRecipients";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "OwnableInvalidOwner";
            readonly inputs: readonly [{
                readonly name: "owner";
                readonly type: "address";
                readonly internalType: "address";
            }];
        }, {
            readonly type: "error";
            readonly name: "OwnableUnauthorizedAccount";
            readonly inputs: readonly [{
                readonly name: "account";
                readonly type: "address";
                readonly internalType: "address";
            }];
        }, {
            readonly type: "error";
            readonly name: "ReentrancyGuardReentrantCall";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "SafeERC20FailedOperation";
            readonly inputs: readonly [{
                readonly name: "token";
                readonly type: "address";
                readonly internalType: "address";
            }];
        }, {
            readonly type: "error";
            readonly name: "TickRangeLowerThanStartingTick";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TicksBackwards";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TicksNotMultipleOfTickSpacing";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TicksOutOfTickBounds";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TokenAlreadyHasRewards";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TooManyPositions";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "TooManyRewardParticipants";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "Unauthorized";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "ZeroRewardAddress";
            readonly inputs: readonly [];
        }, {
            readonly type: "error";
            readonly name: "ZeroRewardAmount";
            readonly inputs: readonly [];
        }];
        readonly functionName: "tokenRewards";
        readonly args: readonly [`0x${string}`];
    }>;
    /**
     * Get the token rewards information from the locker contract.
     * This is useful for obtaining the rewardIndex needed for updateRewardRecipient and updateRewardAdmin.
     *
     * The returned object contains:
     * - token: The token address
     * - poolKey: The Uniswap V4 pool key
     * - positionId: The LP position ID
     * - numPositions: Number of LP positions
     * - rewardBps: Array of reward basis points for each recipient
     * - rewardAdmins: Array of admin addresses (index = rewardIndex)
     * - rewardRecipients: Array of recipient addresses (index = rewardIndex)
     *
     * @param token The token address to get rewards info for
     * @returns Token rewards information including rewardAdmins and rewardRecipients arrays
     */
    getTokenRewards({ token }: {
        token: `0x${string}`;
    }): Promise<{
        token: `0x${string}`;
        poolKey: {
            currency0: `0x${string}`;
            currency1: `0x${string}`;
            fee: number;
            tickSpacing: number;
            hooks: `0x${string}`;
        };
        positionId: bigint;
        numPositions: bigint;
        rewardBps: readonly number[];
        rewardAdmins: readonly `0x${string}`[];
        rewardRecipients: readonly `0x${string}`[];
    }>;
}

export { Clanker };
