import { ContractFunctionName, ContractFunctionArgs } from 'viem';
import { C as ClankerToken_v3_1_abi, a as ClankerToken_v4_abi } from './ClankerToken-Dra5lppJ.js';
import { C as ClankerError } from './errors-5Gv28Tkr.js';

declare const Clanker_v3_1_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: "Deprecated";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidCreatorInfo";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidCreatorReward";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidInterfaceInfo";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidTick";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidVaultConfiguration";
    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 inputs: readonly [];
    readonly name: "ZeroTeamRewardRecipient";
    readonly type: "error";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "oldClankerDeployer";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newClankerDeployer";
        readonly type: "address";
    }];
    readonly name: "ClankerDeployerUpdated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "oldLocker";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newLocker";
        readonly type: "address";
    }];
    readonly name: "LiquidityLockerUpdated";
    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: false;
        readonly internalType: "address";
        readonly name: "admin";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "bool";
        readonly name: "isAdmin";
        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: true;
        readonly internalType: "address";
        readonly name: "tokenAddress";
        readonly type: "address";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "creatorAdmin";
        readonly type: "address";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "interfaceAdmin";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "creatorRewardRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "interfaceRewardRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "positionId";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "string";
        readonly name: "name";
        readonly type: "string";
    }, {
        readonly indexed: false;
        readonly internalType: "string";
        readonly name: "symbol";
        readonly type: "string";
    }, {
        readonly indexed: false;
        readonly internalType: "int24";
        readonly name: "startingTickIfToken0IsNewToken";
        readonly type: "int24";
    }, {
        readonly indexed: false;
        readonly internalType: "string";
        readonly name: "metadata";
        readonly type: "string";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "amountTokensBought";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "vaultDuration";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint8";
        readonly name: "vaultPercentage";
        readonly type: "uint8";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "msgSender";
        readonly type: "address";
    }];
    readonly name: "TokenCreated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "oldVault";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newVault";
        readonly type: "address";
    }];
    readonly name: "VaultUpdated";
    readonly type: "event";
}, {
    readonly inputs: readonly [];
    readonly name: "MAX_CREATOR_REWARD";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "MAX_TICK";
    readonly outputs: readonly [{
        readonly internalType: "int24";
        readonly name: "";
        readonly type: "int24";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "MAX_VAULT_PERCENTAGE";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "POOL_FEE";
    readonly outputs: readonly [{
        readonly internalType: "uint24";
        readonly name: "";
        readonly type: "uint24";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "TICK_SPACING";
    readonly outputs: readonly [{
        readonly internalType: "int24";
        readonly name: "";
        readonly type: "int24";
    }];
    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: "claimRewards";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                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: "uint8";
                readonly name: "vaultPercentage";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint256";
                readonly name: "vaultDuration";
                readonly type: "uint256";
            }];
            readonly internalType: "struct IClanker.VaultConfig";
            readonly name: "vaultConfig";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly internalType: "int24";
                readonly name: "tickIfToken0IsNewToken";
                readonly type: "int24";
            }];
            readonly internalType: "struct IClanker.PoolConfig";
            readonly name: "poolConfig";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "uint24";
                readonly name: "pairedTokenPoolFee";
                readonly type: "uint24";
            }, {
                readonly internalType: "uint256";
                readonly name: "pairedTokenSwapAmountOutMinimum";
                readonly type: "uint256";
            }];
            readonly internalType: "struct IClanker.InitialBuyConfig";
            readonly name: "initialBuyConfig";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "uint256";
                readonly name: "creatorReward";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "creatorAdmin";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "creatorRewardRecipient";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "interfaceAdmin";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "interfaceRewardRecipient";
                readonly type: "address";
            }];
            readonly internalType: "struct IClanker.RewardsConfig";
            readonly name: "rewardsConfig";
            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 internalType: "uint256";
        readonly name: "positionId";
        readonly type: "uint256";
    }];
    readonly stateMutability: "payable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly components: readonly [{
                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: "uint8";
                readonly name: "vaultPercentage";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint256";
                readonly name: "vaultDuration";
                readonly type: "uint256";
            }];
            readonly internalType: "struct IClanker.VaultConfig";
            readonly name: "vaultConfig";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "pairedToken";
                readonly type: "address";
            }, {
                readonly internalType: "int24";
                readonly name: "tickIfToken0IsNewToken";
                readonly type: "int24";
            }];
            readonly internalType: "struct IClanker.PoolConfig";
            readonly name: "poolConfig";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "uint24";
                readonly name: "pairedTokenPoolFee";
                readonly type: "uint24";
            }, {
                readonly internalType: "uint256";
                readonly name: "pairedTokenSwapAmountOutMinimum";
                readonly type: "uint256";
            }];
            readonly internalType: "struct IClanker.InitialBuyConfig";
            readonly name: "initialBuyConfig";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "uint256";
                readonly name: "creatorReward";
                readonly type: "uint256";
            }, {
                readonly internalType: "address";
                readonly name: "creatorAdmin";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "creatorRewardRecipient";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "interfaceAdmin";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "interfaceRewardRecipient";
                readonly type: "address";
            }];
            readonly internalType: "struct IClanker.RewardsConfig";
            readonly name: "rewardsConfig";
            readonly type: "tuple";
        }];
        readonly internalType: "struct IClanker.DeploymentConfig";
        readonly name: "deploymentConfig";
        readonly type: "tuple";
    }, {
        readonly internalType: "address";
        readonly name: "teamRewardRecipient";
        readonly type: "address";
    }];
    readonly name: "deployTokenWithCustomTeamRewardRecipient";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "tokenAddress";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "positionId";
        readonly type: "uint256";
    }];
    readonly stateMutability: "payable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            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 internalType: "address";
        readonly name: "tokenAdmin";
        readonly type: "address";
    }];
    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: "";
        readonly type: "address";
    }];
    readonly name: "deploymentInfoForToken";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "positionId";
        readonly type: "uint256";
    }, {
        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: "user";
        readonly type: "address";
    }];
    readonly name: "getTokensDeployedByUser";
    readonly outputs: readonly [{
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly internalType: "uint256";
            readonly name: "positionId";
            readonly type: "uint256";
        }, {
            readonly internalType: "address";
            readonly name: "locker";
            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: "uniswapV3Factory_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "positionManager_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "swapRouter_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "weth_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "liquidityLocker_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "vault_";
        readonly type: "address";
    }];
    readonly name: "initialize";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "liquidityLocker";
    readonly outputs: readonly [{
        readonly internalType: "contract ILpLockerv2";
        readonly name: "";
        readonly type: "address";
    }];
    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: "positionManager";
    readonly outputs: readonly [{
        readonly internalType: "contract INonfungiblePositionManager";
        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: "isAdmin";
        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 name: "swapRouter";
    readonly outputs: readonly [{
        readonly internalType: "contract ISwapRouter";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly name: "tokensDeployedByUsers";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "positionId";
        readonly type: "uint256";
    }, {
        readonly internalType: "address";
        readonly name: "locker";
        readonly type: "address";
    }];
    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";
}, {
    readonly inputs: readonly [];
    readonly name: "uniswapV3Factory";
    readonly outputs: readonly [{
        readonly internalType: "contract IUniswapV3Factory";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "newLocker";
        readonly type: "address";
    }];
    readonly name: "updateLiquidityLocker";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "newVault";
        readonly type: "address";
    }];
    readonly name: "updateVault";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "vault";
    readonly outputs: readonly [{
        readonly internalType: "contract IClankerVault";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "weth";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}];

declare const Clanker_v0_abi: readonly [{
    readonly type: "constructor";
    readonly inputs: readonly [{
        readonly name: "owner_";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "teamSpender_";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "teamGrantedTokens_";
        readonly type: "address[]";
        readonly internalType: "address[]";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "initializeTokenCreator";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "newCreator";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "proof";
        readonly type: "bytes32[]";
        readonly internalType: "bytes32[]";
    }];
    readonly outputs: readonly [];
    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: "renounceOwnership";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setTeamSpender";
    readonly inputs: readonly [{
        readonly name: "teamSpender_";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setTokenCreatorRoot";
    readonly inputs: readonly [{
        readonly name: "tokenCreatorRoot_";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "teamGrantedTokens";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "teamGrantedTokensMap";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "teamGranted";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "teamSpender";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "teamTransfer";
    readonly inputs: readonly [{
        readonly name: "safe";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "recipient";
        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: "teamTransferEth";
    readonly inputs: readonly [{
        readonly name: "safe";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "tokenCreator";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "creator";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "tokenCreatorRoot";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "tokenCreatorTransfer";
    readonly inputs: readonly [{
        readonly name: "safe";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        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: "transferOwnership";
    readonly inputs: readonly [{
        readonly name: "newOwner";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "updateTokenCreator";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "newCreator";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "event";
    readonly name: "InitializeTokenCreator";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "initializer";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "creator";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    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: "SetTeamSpender";
    readonly inputs: readonly [{
        readonly name: "previousTeamSpender";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "newTeamSpender";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "SetTokenCreatorRoot";
    readonly inputs: readonly [{
        readonly name: "tokenCreatorRoot";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "bytes32";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "Transfer";
    readonly inputs: readonly [{
        readonly name: "safe";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        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: "spender";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "UpdateTokenCreator";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "previousCreator";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "newCreator";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "InsufficientBalance";
    readonly inputs: readonly [{
        readonly name: "safe";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "balance";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
}, {
    readonly type: "error";
    readonly name: "InvalidProof";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "NotAuthorizedToSpend";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }];
}, {
    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: "TokenCreatorAlreadyInitialized";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "delegate";
        readonly type: "address";
        readonly internalType: "address";
    }];
}, {
    readonly type: "error";
    readonly name: "TokenCreatorRootAlreadySet";
    readonly inputs: readonly [{
        readonly name: "tokenCreatorRoot";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }];
}, {
    readonly type: "error";
    readonly name: "TokenCreatorRootNotSet";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "Unauthorized";
    readonly inputs: readonly [{
        readonly name: "unauthorized";
        readonly type: "address";
        readonly internalType: "address";
    }];
}];

declare const LpLockerv2_abi: readonly [{
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "owner_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "tokenFactory_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "positionManager_";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "teamRecipient_";
        readonly type: "address";
    }];
    readonly stateMutability: "nonpayable";
    readonly type: "constructor";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }];
    readonly name: "AlreadyKnownTokenId";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "creatorReward";
        readonly type: "uint256";
    }];
    readonly name: "InvalidCreatorReward";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidMaxCreatorReward";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidTeamRecipient";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "MaxCreatorRewardNotSet";
    readonly type: "error";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "user";
        readonly type: "address";
    }];
    readonly name: "NotAllowed";
    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 anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "creatorRecipient";
        readonly type: "address";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "interfaceRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "teamRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "token0";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "token1";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "creatorReward0";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "creatorReward1";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "interfaceReward0";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "interfaceReward1";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "teamReward0";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "teamReward1";
        readonly type: "uint256";
    }];
    readonly name: "ClaimedRewards";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "oldAdmin";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newAdmin";
        readonly type: "address";
    }];
    readonly name: "CreatorRewardRecipientAdminUpdated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "oldRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "CreatorRewardRecipientUpdated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "oldAdmin";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newAdmin";
        readonly type: "address";
    }];
    readonly name: "InterfaceRewardRecipientAdminUpdated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "oldRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "InterfaceRewardRecipientUpdated";
    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: "from";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }];
    readonly name: "Received";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "oldRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "TeamOverrideRewardRecipientUpdated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "oldRecipient";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "TeamRecipientUpdated";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "creatorReward";
        readonly type: "uint256";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "creator";
        readonly type: "address";
    }, {
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "interfacer";
        readonly type: "address";
    }];
    readonly name: "TokenRewardAdded";
    readonly type: "event";
}, {
    readonly inputs: readonly [];
    readonly name: "MAX_CREATOR_REWARD";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "TEAM_REWARD";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly components: readonly [{
            readonly internalType: "uint256";
            readonly name: "lpTokenId";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "creatorReward";
            readonly type: "uint256";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }];
            readonly internalType: "struct ILpLockerv2.RewardRecipient";
            readonly name: "creator";
            readonly type: "tuple";
        }, {
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "admin";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "recipient";
                readonly type: "address";
            }];
            readonly internalType: "struct ILpLockerv2.RewardRecipient";
            readonly name: "interfacer";
            readonly type: "tuple";
        }];
        readonly internalType: "struct ILpLockerv2.TokenRewardInfo";
        readonly name: "tokenRewardInfo";
        readonly type: "tuple";
    }];
    readonly name: "addTokenReward";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }];
    readonly name: "collectRewards";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly name: "creatorTokenIds";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "factory";
    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: "user";
        readonly type: "address";
    }];
    readonly name: "getLpTokenIdsForCreator";
    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 internalType: "address";
        readonly name: "from";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "id";
        readonly type: "uint256";
    }, {
        readonly internalType: "bytes";
        readonly name: "";
        readonly type: "bytes";
    }];
    readonly name: "onERC721Received";
    readonly outputs: readonly [{
        readonly internalType: "bytes4";
        readonly name: "";
        readonly type: "bytes4";
    }];
    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: "positionManager";
    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: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }, {
        readonly internalType: "address";
        readonly name: "newTeamRecipient";
        readonly type: "address";
    }];
    readonly name: "setOverrideTeamRewardRecipientForToken";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly name: "teamOverrideRewardRecipientForToken";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "teamRecipient";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly name: "tokenRewards";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "lpTokenId";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "creatorReward";
        readonly type: "uint256";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "admin";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "recipient";
            readonly type: "address";
        }];
        readonly internalType: "struct ILpLockerv2.RewardRecipient";
        readonly name: "creator";
        readonly type: "tuple";
    }, {
        readonly components: readonly [{
            readonly internalType: "address";
            readonly name: "admin";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "recipient";
            readonly type: "address";
        }];
        readonly internalType: "struct ILpLockerv2.RewardRecipient";
        readonly name: "interfacer";
        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";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }, {
        readonly internalType: "address";
        readonly name: "newAdmin";
        readonly type: "address";
    }];
    readonly name: "updateCreatorRewardAdmin";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }, {
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "updateCreatorRewardRecipient";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }, {
        readonly internalType: "address";
        readonly name: "newAdmin";
        readonly type: "address";
    }];
    readonly name: "updateInterfaceRewardAdmin";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "tokenId";
        readonly type: "uint256";
    }, {
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "updateInterfaceRewardRecipient";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "newRecipient";
        readonly type: "address";
    }];
    readonly name: "updateTeamRecipient";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "version";
    readonly outputs: readonly [{
        readonly internalType: "string";
        readonly name: "";
        readonly type: "string";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "recipient";
        readonly type: "address";
    }];
    readonly name: "withdrawERC20";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "recipient";
        readonly type: "address";
    }];
    readonly name: "withdrawETH";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}];

declare const Clanker_v4_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: "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";
}];

declare const ClankerAirdrop_v4_abi: readonly [{
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "factory_";
        readonly type: "address";
    }];
    readonly stateMutability: "nonpayable";
    readonly type: "constructor";
}, {
    readonly inputs: readonly [];
    readonly name: "AirdropAlreadyExists";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "AirdropLockupDurationTooShort";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "AirdropNotUnlocked";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidAirdropPercentage";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidMerkleRoot";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidMsgValue";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "InvalidProof";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "ReentrancyGuardReentrantCall";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "TotalMaxClaimed";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "Unauthorized";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "UserMaxClaimed";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "ZeroClaim";
    readonly type: "error";
}, {
    readonly inputs: readonly [];
    readonly name: "ZeroToClaim";
    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: "user";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "totalUserAmountClaimed";
        readonly type: "uint256";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        readonly name: "userAmountStillLocked";
        readonly type: "uint256";
    }];
    readonly name: "AirdropClaimed";
    readonly type: "event";
}, {
    readonly anonymous: false;
    readonly inputs: readonly [{
        readonly indexed: true;
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly indexed: false;
        readonly internalType: "bytes32";
        readonly name: "merkleRoot";
        readonly type: "bytes32";
    }, {
        readonly indexed: false;
        readonly internalType: "uint256";
        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 name: "AirdropCreated";
    readonly type: "event";
}, {
    readonly inputs: readonly [];
    readonly name: "MIN_LOCKUP_DURATION";
    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: "token";
        readonly type: "address";
    }];
    readonly name: "airdrops";
    readonly outputs: readonly [{
        readonly internalType: "bytes32";
        readonly name: "merkleRoot";
        readonly type: "bytes32";
    }, {
        readonly internalType: "uint256";
        readonly name: "totalSupply";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "totalClaimed";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "lockupEndTime";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "vestingEndTime";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}, {
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "recipient";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "allocatedAmount";
        readonly type: "uint256";
    }];
    readonly name: "amountAvailableToClaim";
    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: "token";
        readonly type: "address";
    }, {
        readonly internalType: "address";
        readonly name: "recipient";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "allocatedAmount";
        readonly type: "uint256";
    }, {
        readonly internalType: "bytes32[]";
        readonly name: "proof";
        readonly type: "bytes32[]";
    }];
    readonly name: "claim";
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
    readonly type: "function";
}, {
    readonly inputs: readonly [];
    readonly name: "factory";
    readonly outputs: readonly [{
        readonly internalType: "address";
        readonly name: "";
        readonly type: "address";
    }];
    readonly stateMutability: "view";
    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 components: readonly [{
            readonly internalType: "Currency";
            readonly name: "currency0";
            readonly type: "address";
        }, {
            readonly internalType: "Currency";
            readonly name: "currency1";
            readonly type: "address";
        }, {
            readonly internalType: "uint24";
            readonly name: "fee";
            readonly type: "uint24";
        }, {
            readonly internalType: "int24";
            readonly name: "tickSpacing";
            readonly type: "int24";
        }, {
            readonly internalType: "contract IHooks";
            readonly name: "hooks";
            readonly type: "address";
        }];
        readonly internalType: "struct PoolKey";
        readonly name: "";
        readonly type: "tuple";
    }, {
        readonly internalType: "address";
        readonly name: "token";
        readonly type: "address";
    }, {
        readonly internalType: "uint256";
        readonly name: "extensionSupply";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "extensionIndex";
        readonly type: "uint256";
    }];
    readonly name: "receiveTokens";
    readonly outputs: readonly [];
    readonly stateMutability: "payable";
    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";
}];

declare const ClankerAirdropv2_v4_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: "CLAIM_EXPIRATION_INTERVAL";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    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: "ZERO_CLAIM_OVERWRITE_INTERVAL";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "adminClaim";
    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: "airdrops";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "admin";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "merkleRoot";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }, {
        readonly name: "totalSupply";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "totalClaimed";
        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: "adminClaimTime";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "adminClaimed";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "amountAvailableToClaim";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "allocatedAmount";
        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: "claim";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "allocatedAmount";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "proof";
        readonly type: "bytes32[]";
        readonly internalType: "bytes32[]";
    }];
    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: "function";
    readonly name: "updateAdmin";
    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: "updateMerkleRoot";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "newMerkleRoot";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "event";
    readonly name: "AirdropAdminClaimed";
    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 anonymous: false;
}, {
    readonly type: "event";
    readonly name: "AirdropAdminUpdated";
    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: "AirdropClaimed";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "user";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "totalUserAmountClaimed";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "userAmountStillLocked";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "AirdropCreated";
    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: "merkleRoot";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "bytes32";
    }, {
        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: "event";
    readonly name: "AirdropMerkleRootUpdated";
    readonly inputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "oldMerkleRoot";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "bytes32";
    }, {
        readonly name: "newMerkleRoot";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "bytes32";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "AdminClaimed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AirdropAlreadyExists";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AirdropClaimsOccurred";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AirdropLockupDurationTooShort";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AirdropNotCreated";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "AirdropNotUnlocked";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "ClaimNotEnded";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidAirdropPercentage";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidMsgValue";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidProof";
    readonly inputs: readonly [];
}, {
    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: "TotalMaxClaimed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "Unauthorized";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "UpdateMerkleRootNotAllowed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "UserMaxClaimed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "ZeroClaim";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "ZeroToClaim";
    readonly inputs: readonly [];
}];

declare const ClankerFeeLocker_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";
}];

declare const ClankerHook_DynamicFee_v4_abi: readonly [{
    readonly type: "constructor";
    readonly inputs: readonly [{
        readonly name: "_poolManager";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_factory";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_weth";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "BPS_DENOMINATOR";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "FEE_CONTROL_DENOMINATOR";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "FEE_DENOMINATOR";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "int128";
        readonly internalType: "int128";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MAX_DECAY_FILTER_BPS";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MAX_LP_FEE";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MAX_MEV_MODULE_DELAY";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MIN_BASE_FEE";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "PROTOCOL_FEE_NUMERATOR";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "afterAddLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "delta";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "feesAccrued";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "afterDonate";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "amount0";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "amount1";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "hookData";
        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: "afterInitialize";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "sqrtPriceX96";
        readonly type: "uint160";
        readonly internalType: "uint160";
    }, {
        readonly name: "tick";
        readonly type: "int24";
        readonly internalType: "int24";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "afterRemoveLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "delta";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "feesAccrued";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "afterSwap";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.SwapParams";
        readonly components: readonly [{
            readonly name: "zeroForOne";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "amountSpecified";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "sqrtPriceLimitX96";
            readonly type: "uint160";
            readonly internalType: "uint160";
        }];
    }, {
        readonly name: "delta";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int128";
        readonly internalType: "int128";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "beforeAddLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "hookData";
        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: "beforeDonate";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "amount0";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "amount1";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "hookData";
        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: "beforeInitialize";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "sqrtPriceX96";
        readonly type: "uint160";
        readonly internalType: "uint160";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "beforeRemoveLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "hookData";
        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: "beforeSwap";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.SwapParams";
        readonly components: readonly [{
            readonly name: "zeroForOne";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "amountSpecified";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "sqrtPriceLimitX96";
            readonly type: "uint160";
            readonly internalType: "uint160";
        }];
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int256";
        readonly internalType: "BeforeSwapDelta";
    }, {
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    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: "getHookPermissions";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "tuple";
        readonly internalType: "struct Hooks.Permissions";
        readonly components: readonly [{
            readonly name: "beforeInitialize";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterInitialize";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeAddLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterAddLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeRemoveLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterRemoveLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeSwap";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterSwap";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeDonate";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterDonate";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeSwapReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterSwapReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterAddLiquidityReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterRemoveLiquidityReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
    }];
    readonly stateMutability: "pure";
}, {
    readonly type: "function";
    readonly name: "initializeMevModule";
    readonly inputs: readonly [{
        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: "mevModuleData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "initializePool";
    readonly inputs: readonly [{
        readonly name: "clanker";
        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: "_locker";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_mevModule";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "poolData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        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 stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "initializePoolOpen";
    readonly inputs: readonly [{
        readonly name: "clanker";
        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 outputs: readonly [{
        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 stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "mevModule";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "mevModuleEnabled";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    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: "poolConfigVars";
    readonly inputs: readonly [{
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "tuple";
        readonly internalType: "struct IClankerHookDynamicFee.PoolDynamicConfigVars";
        readonly components: readonly [{
            readonly name: "baseFee";
            readonly type: "uint24";
            readonly internalType: "uint24";
        }, {
            readonly name: "maxLpFee";
            readonly type: "uint24";
            readonly internalType: "uint24";
        }, {
            readonly name: "referenceTickFilterPeriod";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "resetPeriod";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "resetTickFilter";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "feeControlNumerator";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "decayFilterBps";
            readonly type: "uint24";
            readonly internalType: "uint24";
        }];
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "poolCreationTimestamp";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "poolFeeVars";
    readonly inputs: readonly [{
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "tuple";
        readonly internalType: "struct IClankerHookDynamicFee.PoolDynamicFeeVars";
        readonly components: readonly [{
            readonly name: "referenceTick";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "resetTick";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "resetTickTimestamp";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "lastSwapTimestamp";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "appliedVR";
            readonly type: "uint24";
            readonly internalType: "uint24";
        }, {
            readonly name: "prevVA";
            readonly type: "uint24";
            readonly internalType: "uint24";
        }];
    }];
    readonly stateMutability: "view";
}, {
    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: "protocolFee";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "renounceOwnership";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "simulateSwap";
    readonly inputs: readonly [{
        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: "swapParams";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.SwapParams";
        readonly components: readonly [{
            readonly name: "zeroForOne";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "amountSpecified";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "sqrtPriceLimitX96";
            readonly type: "uint160";
            readonly internalType: "uint160";
        }];
    }];
    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: "transferOwnership";
    readonly inputs: readonly [{
        readonly name: "newOwner";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "weth";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "event";
    readonly name: "ClaimProtocolFees";
    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 anonymous: false;
}, {
    readonly type: "event";
    readonly name: "EstimatedTickDifference";
    readonly inputs: readonly [{
        readonly name: "beforeTick";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "afterTick";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "MevModuleDisabled";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }];
    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: "PoolCreatedFactory";
    readonly inputs: readonly [{
        readonly name: "pairedToken";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "clanker";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }, {
        readonly name: "tickIfToken0IsClanker";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "tickSpacing";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "locker";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "mevModule";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PoolCreatedOpen";
    readonly inputs: readonly [{
        readonly name: "pairedToken";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "clanker";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }, {
        readonly name: "tickIfToken0IsClanker";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "tickSpacing";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PoolInitialized";
    readonly inputs: readonly [{
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }, {
        readonly name: "baseFee";
        readonly type: "uint24";
        readonly indexed: false;
        readonly internalType: "uint24";
    }, {
        readonly name: "maxLpFee";
        readonly type: "uint24";
        readonly indexed: false;
        readonly internalType: "uint24";
    }, {
        readonly name: "referenceTickFilterPeriod";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "resetPeriod";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "resetTickFilter";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "feeControlNumerator";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "decayFilterBps";
        readonly type: "uint24";
        readonly indexed: false;
        readonly internalType: "uint24";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "BaseFeeGreaterThanMaxLpFee";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "BaseFeeTooLow";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "ETHPoolNotAllowed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "HookNotImplemented";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "MaxLpFeeTooHigh";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "MevModuleEnabled";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "NotPoolManager";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "OnlyFactory";
    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: "PastCreationTimestamp";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "TickReturned";
    readonly inputs: readonly [{
        readonly name: "tick";
        readonly type: "int24";
        readonly internalType: "int24";
    }];
}, {
    readonly type: "error";
    readonly name: "UnsupportedInitializePath";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "WethCannotBeClanker";
    readonly inputs: readonly [];
}];

declare const ClankerHook_StaticFee_v4_abi: readonly [{
    readonly type: "constructor";
    readonly inputs: readonly [{
        readonly name: "_poolManager";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_factory";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_weth";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "FEE_DENOMINATOR";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "int128";
        readonly internalType: "int128";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MAX_LP_FEE";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MAX_MEV_MODULE_DELAY";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "PROTOCOL_FEE_NUMERATOR";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "afterAddLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "delta";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "feesAccrued";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "afterDonate";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "amount0";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "amount1";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "hookData";
        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: "afterInitialize";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "sqrtPriceX96";
        readonly type: "uint160";
        readonly internalType: "uint160";
    }, {
        readonly name: "tick";
        readonly type: "int24";
        readonly internalType: "int24";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "afterRemoveLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "delta";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "feesAccrued";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "afterSwap";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.SwapParams";
        readonly components: readonly [{
            readonly name: "zeroForOne";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "amountSpecified";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "sqrtPriceLimitX96";
            readonly type: "uint160";
            readonly internalType: "uint160";
        }];
    }, {
        readonly name: "delta";
        readonly type: "int256";
        readonly internalType: "BalanceDelta";
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int128";
        readonly internalType: "int128";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "beforeAddLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "hookData";
        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: "beforeDonate";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "amount0";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "amount1";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "hookData";
        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: "beforeInitialize";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "sqrtPriceX96";
        readonly type: "uint160";
        readonly internalType: "uint160";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "beforeRemoveLiquidity";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.ModifyLiquidityParams";
        readonly components: readonly [{
            readonly name: "tickLower";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "tickUpper";
            readonly type: "int24";
            readonly internalType: "int24";
        }, {
            readonly name: "liquidityDelta";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
    }, {
        readonly name: "hookData";
        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: "beforeSwap";
    readonly inputs: readonly [{
        readonly name: "sender";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "key";
        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: "params";
        readonly type: "tuple";
        readonly internalType: "struct IPoolManager.SwapParams";
        readonly components: readonly [{
            readonly name: "zeroForOne";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "amountSpecified";
            readonly type: "int256";
            readonly internalType: "int256";
        }, {
            readonly name: "sqrtPriceLimitX96";
            readonly type: "uint160";
            readonly internalType: "uint160";
        }];
    }, {
        readonly name: "hookData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bytes4";
        readonly internalType: "bytes4";
    }, {
        readonly name: "";
        readonly type: "int256";
        readonly internalType: "BeforeSwapDelta";
    }, {
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "clankerFee";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    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: "getHookPermissions";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "tuple";
        readonly internalType: "struct Hooks.Permissions";
        readonly components: readonly [{
            readonly name: "beforeInitialize";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterInitialize";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeAddLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterAddLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeRemoveLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterRemoveLiquidity";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeSwap";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterSwap";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeDonate";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterDonate";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "beforeSwapReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterSwapReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterAddLiquidityReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "afterRemoveLiquidityReturnDelta";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
    }];
    readonly stateMutability: "pure";
}, {
    readonly type: "function";
    readonly name: "initializeMevModule";
    readonly inputs: readonly [{
        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: "mevModuleData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "initializePool";
    readonly inputs: readonly [{
        readonly name: "clanker";
        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: "_locker";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "_mevModule";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "poolData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        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 stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "initializePoolOpen";
    readonly inputs: readonly [{
        readonly name: "clanker";
        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 outputs: readonly [{
        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 stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "mevModule";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "mevModuleEnabled";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    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: "pairedFee";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "poolCreationTimestamp";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly internalType: "PoolId";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    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: "protocolFee";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint24";
        readonly internalType: "uint24";
    }];
    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: "transferOwnership";
    readonly inputs: readonly [{
        readonly name: "newOwner";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "weth";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "event";
    readonly name: "ClaimProtocolFees";
    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 anonymous: false;
}, {
    readonly type: "event";
    readonly name: "MevModuleDisabled";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }];
    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: "PoolCreatedFactory";
    readonly inputs: readonly [{
        readonly name: "pairedToken";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "clanker";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }, {
        readonly name: "tickIfToken0IsClanker";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "tickSpacing";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "locker";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "mevModule";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PoolCreatedOpen";
    readonly inputs: readonly [{
        readonly name: "pairedToken";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "clanker";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }, {
        readonly name: "tickIfToken0IsClanker";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }, {
        readonly name: "tickSpacing";
        readonly type: "int24";
        readonly indexed: false;
        readonly internalType: "int24";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PoolInitialized";
    readonly inputs: readonly [{
        readonly name: "poolId";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "PoolId";
    }, {
        readonly name: "clankerFee";
        readonly type: "uint24";
        readonly indexed: false;
        readonly internalType: "uint24";
    }, {
        readonly name: "pairedFee";
        readonly type: "uint24";
        readonly indexed: false;
        readonly internalType: "uint24";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "ClankerFeeTooHigh";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "ETHPoolNotAllowed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "HookNotImplemented";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "MevModuleEnabled";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "NotPoolManager";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "OnlyFactory";
    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: "PairedFeeTooHigh";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PastCreationTimestamp";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "UnsupportedInitializePath";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "WethCannotBeClanker";
    readonly inputs: readonly [];
}];

declare const ClankerLocker_v4_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 [];
}];

declare const Clanker_PresaleAllowlist_v4_1_abi: readonly [{
    readonly type: "constructor";
    readonly inputs: readonly [{
        readonly name: "presale_";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "allowlists";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [{
        readonly name: "presaleOwner";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "merkleRoot";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getAllowedAmountForBuyer";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "buyer";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "proof";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "initialize";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "presaleOwner";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "initializationData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "presale";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "setAddressOverride";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "buyer";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "allowedAmount";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setAllowlistEnabled";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setMerkleRoot";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "merkleRoot";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "event";
    readonly name: "Initialize";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "presaleOwner";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "merkleRoot";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "bytes32";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "SetAddressOverride";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "buyer";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "allowedAmount";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "SetAllowlistEnabled";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly indexed: false;
        readonly internalType: "bool";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "SetMerkleRoot";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "merkleRoot";
        readonly type: "bytes32";
        readonly indexed: false;
        readonly internalType: "bytes32";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "InvalidProof";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "MerkleRootNotSet";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "Unauthorized";
    readonly inputs: readonly [];
}];

declare const Clanker_PresaleEthToCreator_v4_1_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: "clankerFeeRecipient_";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "BPS";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "DEPLOYMENT_BAD_BUFFER";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "MAX_PRESALE_DURATION";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "SALT_SET_BUFFER";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "admins";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "amountAvailableToClaim";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "user";
        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: "buyIntoPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "payable";
}, {
    readonly type: "function";
    readonly name: "buyIntoPresaleWithProof";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "proof";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "payable";
}, {
    readonly type: "function";
    readonly name: "claimEth";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "claimTokens";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "clankerDefaultFeeBps";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "clankerFeeRecipient";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "enabledAllowlists";
    readonly inputs: readonly [{
        readonly name: "allowlist";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "enabled";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "endPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "salt";
        readonly type: "bytes32";
        readonly internalType: "bytes32";
    }];
    readonly outputs: readonly [{
        readonly name: "token";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "factory";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
        readonly internalType: "contract IClanker";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "getPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId_";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "tuple";
        readonly internalType: "struct IClankerPresaleEthToCreator.Presale";
        readonly components: readonly [{
            readonly name: "status";
            readonly type: "uint8";
            readonly internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
        }, {
            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: "allowlist";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "presaleOwner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "minEthGoal";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "maxEthGoal";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "endTime";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "deployedToken";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "ethRaised";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "tokenSupply";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "deploymentExpected";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "ethClaimed";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "lockupDuration";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "vestingDuration";
            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: "clankerFee";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "minLockupDuration";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    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: "presaleBuys";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "user";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "amount";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "presaleClaimed";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "user";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "amount";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly stateMutability: "view";
}, {
    readonly type: "function";
    readonly name: "presaleState";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [{
        readonly name: "status";
        readonly type: "uint8";
        readonly internalType: "enum IClankerPresaleEthToCreator.PresaleStatus";
    }, {
        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: "allowlist";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "presaleOwner";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "minEthGoal";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "maxEthGoal";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "endTime";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "deployedToken";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "ethRaised";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "tokenSupply";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "deploymentExpected";
        readonly type: "bool";
        readonly internalType: "bool";
    }, {
        readonly name: "ethClaimed";
        readonly type: "bool";
        readonly internalType: "bool";
    }, {
        readonly name: "lockupDuration";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "vestingDuration";
        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: "clankerFee";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    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: "renounceOwnership";
    readonly inputs: readonly [];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setAdmin";
    readonly inputs: readonly [{
        readonly name: "admin";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setAllowlist";
    readonly inputs: readonly [{
        readonly name: "allowlist";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly internalType: "bool";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setClankerDefaultFee";
    readonly inputs: readonly [{
        readonly name: "clankerDefaultFeeBps_";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setClankerFeeForPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "newFee";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setClankerFeeRecipient";
    readonly inputs: readonly [{
        readonly name: "recipient";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "setMinLockupDuration";
    readonly inputs: readonly [{
        readonly name: "minLockupDuration_";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "startPresale";
    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: "minEthGoal";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "maxEthGoal";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "presaleDuration";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "presaleOwner";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "lockupDuration";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "vestingDuration";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "allowlist";
        readonly type: "address";
        readonly internalType: "address";
    }, {
        readonly name: "allowlistInitializationData";
        readonly type: "bytes";
        readonly internalType: "bytes";
    }];
    readonly outputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
    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: "transferOwnership";
    readonly inputs: readonly [{
        readonly name: "newOwner";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "function";
    readonly name: "withdrawFromPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "amount";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly internalType: "address";
    }];
    readonly outputs: readonly [];
    readonly stateMutability: "nonpayable";
}, {
    readonly type: "event";
    readonly name: "ClaimEth";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "ethAmount";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "fee";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "ClaimTokens";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "claimer";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "tokenAmount";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "ClankerDefaultFeeUpdated";
    readonly inputs: readonly [{
        readonly name: "oldClankerDefaultFee";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "clankerDefaultFee";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "ClankerFeeRecipientUpdated";
    readonly inputs: readonly [{
        readonly name: "oldRecipient";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "recipient";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "ClankerFeeUpdatedForPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "oldClankerFee";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "clankerFee";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "MinLockupDurationUpdated";
    readonly inputs: readonly [{
        readonly name: "oldMinLockupDuration";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "minLockupDuration";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    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: "PresaleBuy";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "buyer";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "ethToUse";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "ethRaised";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PresaleDeployed";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "token";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PresaleFailed";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "PresaleStarted";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "allowlist";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "deploymentConfig";
        readonly type: "tuple";
        readonly indexed: false;
        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: "minEthGoal";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "maxEthGoal";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "presaleDuration";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "presaleOwner";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        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 name: "clankerFeeBps";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "SetAdmin";
    readonly inputs: readonly [{
        readonly name: "admin";
        readonly type: "address";
        readonly indexed: true;
        readonly internalType: "address";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly indexed: false;
        readonly internalType: "bool";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "SetAllowlist";
    readonly inputs: readonly [{
        readonly name: "allowlist";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "enabled";
        readonly type: "bool";
        readonly indexed: false;
        readonly internalType: "bool";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "WithdrawFromPresale";
    readonly inputs: readonly [{
        readonly name: "presaleId";
        readonly type: "uint256";
        readonly indexed: true;
        readonly internalType: "uint256";
    }, {
        readonly name: "withdrawer";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "amount";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }, {
        readonly name: "ethRaised";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "event";
    readonly name: "WithdrawWithdrawFee";
    readonly inputs: readonly [{
        readonly name: "recipient";
        readonly type: "address";
        readonly indexed: false;
        readonly internalType: "address";
    }, {
        readonly name: "amount";
        readonly type: "uint256";
        readonly indexed: false;
        readonly internalType: "uint256";
    }];
    readonly anonymous: false;
}, {
    readonly type: "error";
    readonly name: "AllowlistAmountExceeded";
    readonly inputs: readonly [{
        readonly name: "allowedAmount";
        readonly type: "uint256";
        readonly internalType: "uint256";
    }];
}, {
    readonly type: "error";
    readonly name: "AllowlistNotEnabled";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "EthTransferFailed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InsufficientBalance";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidClankerFee";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidEthGoal";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidMsgValue";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidPresale";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidPresaleDuration";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidPresaleOwner";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidPresaleSupply";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "InvalidTimeLimit";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "LockupDurationTooShort";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "NoTokensToClaim";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "NoWithdrawFeeAccumulated";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "NotExpectingTokenDeployment";
    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: "PresaleAlreadyClaimed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleLockupNotPassed";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleNotActive";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleNotClaimable";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleNotLastExtension";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleNotReadyForDeployment";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleSaltBufferNotExpired";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "PresaleSuccessful";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "RecipientMustBePresaleOwner";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "ReentrancyGuardReentrantCall";
    readonly inputs: readonly [];
}, {
    readonly type: "error";
    readonly name: "Unauthorized";
    readonly inputs: readonly [];
}];

type ClankerToken = typeof ClankerToken_v3_1_abi | typeof ClankerToken_v4_abi;
type ClankerFactory = typeof Clanker_v3_1_abi | typeof Clanker_v4_abi;
type ClankerHooks = typeof ClankerHook_DynamicFee_v4_abi | typeof ClankerHook_StaticFee_v4_abi;
type ClankerContract = typeof ClankerFeeLocker_abi | ClankerFactory | ClankerToken | ClankerHooks | typeof ClankerAirdrop_v4_abi | typeof ClankerAirdropv2_v4_abi | typeof LpLockerv2_abi | typeof ClankerLocker_v4_abi | typeof Clanker_PresaleAllowlist_v4_1_abi | typeof Clanker_PresaleEthToCreator_v4_1_abi | typeof Clanker_v0_abi;

type UndefinedValues<T> = {
    [P in keyof T]?: undefined;
};
type ClankerResult<T extends Record<string | number | symbol, unknown>> = Promise<(T & {
    error?: undefined;
}) | (UndefinedValues<T> & {
    error: ClankerError;
})>;
type ClankerTransactionConfig<abi extends ClankerContract = ClankerContract, functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'> = ContractFunctionName<abi, 'nonpayable' | 'payable'>, args extends ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName> = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>> = {
    abi: abi;
    address: `0x${string}`;
    functionName: functionName;
    args: args;
    gas?: bigint;
    gasPrice?: bigint;
    value?: bigint;
    chainId?: number;
    dataSuffix?: `0x${string}`;
};

export { type ClankerTransactionConfig as C, Clanker_v3_1_abi as a, type ClankerFactory as b, type ClankerResult as c, ClankerFeeLocker_abi as d, ClankerLocker_v4_abi as e, ClankerAirdrop_v4_abi as f, Clanker_PresaleEthToCreator_v4_1_abi as g, Clanker_PresaleAllowlist_v4_1_abi as h };
