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 interface IMultiStakingVaultInterface extends Interface { getFunction(nameOrSignature: "boostHFTStake" | "boostHFTStakeWithPermit" | "getNumVaults" | "getStakePower" | "getStakePowerForVault" | "increaseHFTStakeAmountFor" | "maxDaysToStake" | "maxNumVaults" | "stakes" | "updateMaxDaysToStake" | "updateMaxNumVaults" | "withdrawHFT"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "BoostHFTStake" | "StakeChanged" | "UpdateHFT" | "UpdateMaxDaysToStake" | "UpdateMaxNumVaults" | "WithdrawHFT"): EventFragment; encodeFunctionData(functionFragment: "boostHFTStake", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "boostHFTStakeWithPermit", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "getNumVaults", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getStakePower", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getStakePowerForVault", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "increaseHFTStakeAmountFor", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "maxDaysToStake", values?: undefined): string; encodeFunctionData(functionFragment: "maxNumVaults", values?: undefined): string; encodeFunctionData(functionFragment: "stakes", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "updateMaxDaysToStake", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateMaxNumVaults", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "withdrawHFT", values: [BigNumberish, BigNumberish, BigNumberish]): string; decodeFunctionResult(functionFragment: "boostHFTStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "boostHFTStakeWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getNumVaults", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStakePower", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStakePowerForVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "increaseHFTStakeAmountFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "maxDaysToStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "maxNumVaults", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stakes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateMaxDaysToStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateMaxNumVaults", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawHFT", data: BytesLike): Result; } export declare namespace BoostHFTStakeEvent { type InputTuple = [ account: AddressLike, vaultId: BigNumberish, amount: BigNumberish, daysStaked: BigNumberish ]; type OutputTuple = [ account: string, vaultId: bigint, amount: bigint, daysStaked: bigint ]; interface OutputObject { account: string; vaultId: bigint; amount: bigint; daysStaked: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace StakeChangedEvent { type InputTuple = [ account: AddressLike, vaultId: BigNumberish, amount: BigNumberish, lockExpiry: BigNumberish ]; type OutputTuple = [ account: string, vaultId: bigint, amount: bigint, lockExpiry: bigint ]; interface OutputObject { account: string; vaultId: bigint; amount: bigint; lockExpiry: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateHFTEvent { type InputTuple = [hft: AddressLike]; type OutputTuple = [hft: string]; interface OutputObject { hft: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateMaxDaysToStakeEvent { type InputTuple = [maxDaysToStake: BigNumberish]; type OutputTuple = [maxDaysToStake: bigint]; interface OutputObject { maxDaysToStake: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateMaxNumVaultsEvent { type InputTuple = [maxNumVaults: BigNumberish]; type OutputTuple = [maxNumVaults: bigint]; interface OutputObject { maxNumVaults: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WithdrawHFTEvent { type InputTuple = [ account: AddressLike, vaultId: BigNumberish, amountWithdrawn: BigNumberish, amountRestaked: BigNumberish ]; type OutputTuple = [ account: string, vaultId: bigint, amountWithdrawn: bigint, amountRestaked: bigint ]; interface OutputObject { account: string; vaultId: bigint; amountWithdrawn: bigint; amountRestaked: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IMultiStakingVault extends BaseContract { connect(runner?: ContractRunner | null): IMultiStakingVault; waitForDeployment(): Promise; interface: IMultiStakingVaultInterface; 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; boostHFTStake: TypedContractMethod<[ vaultId: BigNumberish, amount: BigNumberish, daysToStake: BigNumberish ], [ void ], "nonpayable">; boostHFTStakeWithPermit: TypedContractMethod<[ vaultId: BigNumberish, amount: BigNumberish, daysToStake: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, approvalAmount: BigNumberish ], [ void ], "nonpayable">; getNumVaults: TypedContractMethod<[user: AddressLike], [bigint], "view">; getStakePower: TypedContractMethod<[user: AddressLike], [bigint], "view">; getStakePowerForVault: TypedContractMethod<[ user: AddressLike, vaultId: BigNumberish ], [ bigint ], "view">; increaseHFTStakeAmountFor: TypedContractMethod<[ user: AddressLike, vaultId: BigNumberish, amount: BigNumberish ], [ void ], "nonpayable">; maxDaysToStake: TypedContractMethod<[], [bigint], "nonpayable">; maxNumVaults: TypedContractMethod<[], [bigint], "nonpayable">; stakes: TypedContractMethod<[ user: AddressLike, vaultId: BigNumberish ], [ [bigint, bigint] ], "nonpayable">; updateMaxDaysToStake: TypedContractMethod<[ maxDaysToStake: BigNumberish ], [ void ], "nonpayable">; updateMaxNumVaults: TypedContractMethod<[ maxNumVaults: BigNumberish ], [ void ], "nonpayable">; withdrawHFT: TypedContractMethod<[ vaultId: BigNumberish, amountToRestake: BigNumberish, daysToRestake: BigNumberish ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "boostHFTStake"): TypedContractMethod<[ vaultId: BigNumberish, amount: BigNumberish, daysToStake: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "boostHFTStakeWithPermit"): TypedContractMethod<[ vaultId: BigNumberish, amount: BigNumberish, daysToStake: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, approvalAmount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getNumVaults"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getStakePower"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getStakePowerForVault"): TypedContractMethod<[ user: AddressLike, vaultId: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "increaseHFTStakeAmountFor"): TypedContractMethod<[ user: AddressLike, vaultId: BigNumberish, amount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "maxDaysToStake"): TypedContractMethod<[], [bigint], "nonpayable">; getFunction(nameOrSignature: "maxNumVaults"): TypedContractMethod<[], [bigint], "nonpayable">; getFunction(nameOrSignature: "stakes"): TypedContractMethod<[ user: AddressLike, vaultId: BigNumberish ], [ [bigint, bigint] ], "nonpayable">; getFunction(nameOrSignature: "updateMaxDaysToStake"): TypedContractMethod<[maxDaysToStake: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "updateMaxNumVaults"): TypedContractMethod<[maxNumVaults: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "withdrawHFT"): TypedContractMethod<[ vaultId: BigNumberish, amountToRestake: BigNumberish, daysToRestake: BigNumberish ], [ void ], "nonpayable">; getEvent(key: "BoostHFTStake"): TypedContractEvent; getEvent(key: "StakeChanged"): TypedContractEvent; getEvent(key: "UpdateHFT"): TypedContractEvent; getEvent(key: "UpdateMaxDaysToStake"): TypedContractEvent; getEvent(key: "UpdateMaxNumVaults"): TypedContractEvent; getEvent(key: "WithdrawHFT"): TypedContractEvent; filters: { "BoostHFTStake(address,uint8,uint128,uint64)": TypedContractEvent; BoostHFTStake: TypedContractEvent; "StakeChanged(address,uint8,uint128,uint64)": TypedContractEvent; StakeChanged: TypedContractEvent; "UpdateHFT(address)": TypedContractEvent; UpdateHFT: TypedContractEvent; "UpdateMaxDaysToStake(uint16)": TypedContractEvent; UpdateMaxDaysToStake: TypedContractEvent; "UpdateMaxNumVaults(uint8)": TypedContractEvent; UpdateMaxNumVaults: TypedContractEvent; "WithdrawHFT(address,uint8,uint128,uint128)": TypedContractEvent; WithdrawHFT: TypedContractEvent; }; }