import { C as ClankerTransactionConfig, f as ClankerFeeLocker_abi, b as ClankerError, c as ClankerFactory, d as ClankerResult } from '../write-clanker-contracts-P4x1JFPX.js';
import * as viem from 'viem';
import { WalletClient, Transport, Chain, Account, PublicClient } from 'viem';
import { a as ClankerTokenV4 } from '../clankerTokenV4-DT-meked.js';
export { e as encodeFeeConfig } from '../clankerTokenV4-DT-meked.js';
import '../ClankerToken-Dra5lppJ.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
     * @returns Transaction hash and awaitable function for full deployment
     */
    deploy(token: ClankerTokenV4): Promise<({
        txHash: `0x${string}`;
        waitForTransaction: () => ClankerResult<{
            address: `0x${string}`;
        }>;
    } & {
        error?: undefined;
    }) | ({
        txHash?: undefined;
        waitForTransaction?: 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;
    };
}

export { Clanker };
