import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IVaultMining { type UserInfoStruct = { shares: BigNumberish; __deprecated_reward: BigNumberish; rewardDebt: BigNumberish; }; type UserInfoStructOutput = [ shares: bigint, __deprecated_reward: bigint, rewardDebt: bigint ] & { shares: bigint; __deprecated_reward: bigint; rewardDebt: bigint; }; type VaultInfoStruct = { totalShares: BigNumberish; votes: BigNumberish; __deprecated_lastRewardTimestamp: BigNumberish; accRewardsPerShare: BigNumberish; rewardDebt: BigNumberish; }; type VaultInfoStructOutput = [ totalShares: bigint, votes: bigint, __deprecated_lastRewardTimestamp: bigint, accRewardsPerShare: bigint, rewardDebt: bigint ] & { totalShares: bigint; votes: bigint; __deprecated_lastRewardTimestamp: bigint; accRewardsPerShare: bigint; rewardDebt: bigint; }; } export interface IVaultMiningInterface extends Interface { getFunction(nameOrSignature: "addRewards" | "claim" | "claimAll" | "getDualMiningPools" | "getPendingUserRewardsFromVault" | "getPendingVaultRewards" | "getRewardsAvailable" | "getRewardsPerYear" | "getTotalUserRewards" | "getTotalVotes" | "getUserInfo" | "getUserRewards" | "getVaultInfo" | "getVoteMultiplier" | "previewOptionParams" | "updateUser(address,address)" | "updateUser(address,uint256,uint256,uint256)" | "updateVault" | "updateVaults"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AddDualMiningPool" | "AllocateRewards" | "Claim" | "RemoveDualMiningPool" | "SetRewardsPerYear" | "SetVoteMultiplier" | "UpdateVaultVotes"): EventFragment; encodeFunctionData(functionFragment: "addRewards", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "claim", values: [AddressLike[], BigNumberish]): string; encodeFunctionData(functionFragment: "claimAll", values: [AddressLike[]]): string; encodeFunctionData(functionFragment: "getDualMiningPools", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPendingUserRewardsFromVault", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getPendingVaultRewards", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getRewardsAvailable", values?: undefined): string; encodeFunctionData(functionFragment: "getRewardsPerYear", values?: undefined): string; encodeFunctionData(functionFragment: "getTotalUserRewards", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getTotalVotes", values?: undefined): string; encodeFunctionData(functionFragment: "getUserInfo", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getUserRewards", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getVaultInfo", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getVoteMultiplier", values: [AddressLike]): string; encodeFunctionData(functionFragment: "previewOptionParams", values?: undefined): string; encodeFunctionData(functionFragment: "updateUser(address,address)", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "updateUser(address,uint256,uint256,uint256)", values: [AddressLike, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "updateVault", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateVaults", values?: undefined): string; decodeFunctionResult(functionFragment: "addRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "claim", data: BytesLike): Result; decodeFunctionResult(functionFragment: "claimAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDualMiningPools", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingUserRewardsFromVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingVaultRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRewardsAvailable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRewardsPerYear", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalUserRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalVotes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVoteMultiplier", data: BytesLike): Result; decodeFunctionResult(functionFragment: "previewOptionParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateUser(address,address)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateUser(address,uint256,uint256,uint256)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateVaults", data: BytesLike): Result; } export declare namespace AddDualMiningPoolEvent { type InputTuple = [vault: AddressLike, dualMiningPool: AddressLike]; type OutputTuple = [vault: string, dualMiningPool: string]; interface OutputObject { vault: string; dualMiningPool: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace AllocateRewardsEvent { type InputTuple = [ user: AddressLike, vault: AddressLike, rewardAmount: BigNumberish ]; type OutputTuple = [user: string, vault: string, rewardAmount: bigint]; interface OutputObject { user: string; vault: string; rewardAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ClaimEvent { type InputTuple = [user: AddressLike, rewardAmount: BigNumberish]; type OutputTuple = [user: string, rewardAmount: bigint]; interface OutputObject { user: string; rewardAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RemoveDualMiningPoolEvent { type InputTuple = [vault: AddressLike, dualMiningPool: AddressLike]; type OutputTuple = [vault: string, dualMiningPool: string]; interface OutputObject { vault: string; dualMiningPool: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SetRewardsPerYearEvent { type InputTuple = [rewardsPerYear: BigNumberish]; type OutputTuple = [rewardsPerYear: bigint]; interface OutputObject { rewardsPerYear: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SetVoteMultiplierEvent { type InputTuple = [vault: AddressLike, voteMultiplier: BigNumberish]; type OutputTuple = [vault: string, voteMultiplier: bigint]; interface OutputObject { vault: string; voteMultiplier: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateVaultVotesEvent { type InputTuple = [ vault: AddressLike, votes: BigNumberish, voteMultiplier: BigNumberish ]; type OutputTuple = [ vault: string, votes: bigint, voteMultiplier: bigint ]; interface OutputObject { vault: string; votes: bigint; voteMultiplier: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IVaultMining extends BaseContract { connect(runner?: ContractRunner | null): IVaultMining; waitForDeployment(): Promise; interface: IVaultMiningInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; addRewards: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; claim: TypedContractMethod<[ vaults: AddressLike[], amount: BigNumberish ], [ void ], "nonpayable">; claimAll: TypedContractMethod<[vaults: AddressLike[]], [void], "nonpayable">; getDualMiningPools: TypedContractMethod<[ vault: AddressLike ], [ string[] ], "view">; getPendingUserRewardsFromVault: TypedContractMethod<[ user: AddressLike, vault: AddressLike ], [ bigint ], "view">; getPendingVaultRewards: TypedContractMethod<[ vault: AddressLike ], [ bigint ], "view">; getRewardsAvailable: TypedContractMethod<[], [bigint], "view">; getRewardsPerYear: TypedContractMethod<[], [bigint], "view">; getTotalUserRewards: TypedContractMethod<[ user: AddressLike ], [ bigint ], "view">; getTotalVotes: TypedContractMethod<[], [bigint], "view">; getUserInfo: TypedContractMethod<[ user: AddressLike, vault: AddressLike ], [ IVaultMining.UserInfoStructOutput ], "view">; getUserRewards: TypedContractMethod<[user: AddressLike], [bigint], "view">; getVaultInfo: TypedContractMethod<[ vault: AddressLike ], [ IVaultMining.VaultInfoStructOutput ], "view">; getVoteMultiplier: TypedContractMethod<[ vault: AddressLike ], [ bigint ], "view">; previewOptionParams: TypedContractMethod<[ ], [ [bigint, bigint] & { strike: bigint; maturity: bigint; } ], "view">; "updateUser(address,address)": TypedContractMethod<[ user: AddressLike, vault: AddressLike ], [ void ], "nonpayable">; "updateUser(address,uint256,uint256,uint256)": TypedContractMethod<[ user: AddressLike, newUserShares: BigNumberish, newTotalShares: BigNumberish, utilisationRate: BigNumberish ], [ void ], "nonpayable">; updateVault: TypedContractMethod<[vault: AddressLike], [void], "nonpayable">; updateVaults: TypedContractMethod<[], [void], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "addRewards"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "claim"): TypedContractMethod<[ vaults: AddressLike[], amount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "claimAll"): TypedContractMethod<[vaults: AddressLike[]], [void], "nonpayable">; getFunction(nameOrSignature: "getDualMiningPools"): TypedContractMethod<[vault: AddressLike], [string[]], "view">; getFunction(nameOrSignature: "getPendingUserRewardsFromVault"): TypedContractMethod<[ user: AddressLike, vault: AddressLike ], [ bigint ], "view">; getFunction(nameOrSignature: "getPendingVaultRewards"): TypedContractMethod<[vault: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getRewardsAvailable"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getRewardsPerYear"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getTotalUserRewards"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getTotalVotes"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getUserInfo"): TypedContractMethod<[ user: AddressLike, vault: AddressLike ], [ IVaultMining.UserInfoStructOutput ], "view">; getFunction(nameOrSignature: "getUserRewards"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getVaultInfo"): TypedContractMethod<[ vault: AddressLike ], [ IVaultMining.VaultInfoStructOutput ], "view">; getFunction(nameOrSignature: "getVoteMultiplier"): TypedContractMethod<[vault: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "previewOptionParams"): TypedContractMethod<[ ], [ [bigint, bigint] & { strike: bigint; maturity: bigint; } ], "view">; getFunction(nameOrSignature: "updateUser(address,address)"): TypedContractMethod<[ user: AddressLike, vault: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateUser(address,uint256,uint256,uint256)"): TypedContractMethod<[ user: AddressLike, newUserShares: BigNumberish, newTotalShares: BigNumberish, utilisationRate: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateVault"): TypedContractMethod<[vault: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateVaults"): TypedContractMethod<[], [void], "nonpayable">; getEvent(key: "AddDualMiningPool"): TypedContractEvent; getEvent(key: "AllocateRewards"): TypedContractEvent; getEvent(key: "Claim"): TypedContractEvent; getEvent(key: "RemoveDualMiningPool"): TypedContractEvent; getEvent(key: "SetRewardsPerYear"): TypedContractEvent; getEvent(key: "SetVoteMultiplier"): TypedContractEvent; getEvent(key: "UpdateVaultVotes"): TypedContractEvent; filters: { "AddDualMiningPool(address,address)": TypedContractEvent; AddDualMiningPool: TypedContractEvent; "AllocateRewards(address,address,uint256)": TypedContractEvent; AllocateRewards: TypedContractEvent; "Claim(address,uint256)": TypedContractEvent; Claim: TypedContractEvent; "RemoveDualMiningPool(address,address)": TypedContractEvent; RemoveDualMiningPool: TypedContractEvent; "SetRewardsPerYear(uint256)": TypedContractEvent; SetRewardsPerYear: TypedContractEvent; "SetVoteMultiplier(address,uint256)": TypedContractEvent; SetVoteMultiplier: TypedContractEvent; "UpdateVaultVotes(address,uint256,uint256)": TypedContractEvent; UpdateVaultVotes: TypedContractEvent; }; }