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 VxPremiaStorage { type VoteStruct = { amount: BigNumberish; version: BigNumberish; target: BytesLike; }; type VoteStructOutput = [ amount: bigint, version: bigint, target: string ] & { amount: bigint; version: bigint; target: string; }; } export declare namespace IPremiaStaking { type StakeLevelStruct = { amount: BigNumberish; discount: BigNumberish; }; type StakeLevelStructOutput = [amount: bigint, discount: bigint] & { amount: bigint; discount: bigint; }; type SwapArgsStruct = { amountOutMin: BigNumberish; callee: AddressLike; allowanceTarget: AddressLike; data: BytesLike; refundAddress: AddressLike; }; type SwapArgsStructOutput = [ amountOutMin: bigint, callee: string, allowanceTarget: string, data: string, refundAddress: string ] & { amountOutMin: bigint; callee: string; allowanceTarget: string; data: string; refundAddress: string; }; } export declare namespace PremiaStakingStorage { type UserInfoStruct = { reward: BigNumberish; rewardDebt: BigNumberish; unstakeRewardDebt: BigNumberish; stakePeriod: BigNumberish; lockedUntil: BigNumberish; }; type UserInfoStructOutput = [ reward: bigint, rewardDebt: bigint, unstakeRewardDebt: bigint, stakePeriod: bigint, lockedUntil: bigint ] & { reward: bigint; rewardDebt: bigint; unstakeRewardDebt: bigint; stakePeriod: bigint; lockedUntil: bigint; }; } export interface IVxPremiaInterface extends Interface { getFunction(nameOrSignature: "DOMAIN_SEPARATOR" | "addRewards" | "allowance" | "approve" | "balanceOf" | "castVotes" | "circulatingSupply" | "decimals" | "decreaseAllowance" | "earlyUnstake" | "estimateSendFee" | "getAvailablePremiaAmount" | "getAvailableRewards" | "getDiscount" | "getEarlyUnstakeFee" | "getPendingRewards" | "getPendingUserRewards" | "getPendingWithdrawal" | "getPendingWithdrawals" | "getPoolVotes" | "getRewardToken" | "getStakeLevels" | "getStakePeriodMultiplier" | "getTotalPower" | "getUserInfo" | "getUserPower" | "getUserVotes" | "harvest" | "harvestAndStake" | "increaseAllowance" | "name" | "nonces" | "permit" | "sendFrom" | "stake" | "stakeWithPermit" | "startWithdraw" | "supportsInterface" | "symbol" | "totalSupply" | "transfer" | "transferFrom" | "updateLock" | "withdraw"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AddVote" | "Approval" | "BridgeLock" | "EarlyUnstakeRewardCollected" | "Harvest" | "ReceiveFromChain" | "RemoveVote" | "RewardsAdded" | "SendToChain" | "SetUseCustomAdapterParams" | "Stake" | "Transfer" | "Unstake" | "UpdateLock" | "Withdraw"): EventFragment; encodeFunctionData(functionFragment: "DOMAIN_SEPARATOR", values?: undefined): string; encodeFunctionData(functionFragment: "addRewards", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "allowance", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "approve", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string; encodeFunctionData(functionFragment: "castVotes", values: [VxPremiaStorage.VoteStruct[]]): string; encodeFunctionData(functionFragment: "circulatingSupply", values?: undefined): string; encodeFunctionData(functionFragment: "decimals", values?: undefined): string; encodeFunctionData(functionFragment: "decreaseAllowance", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "earlyUnstake", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "estimateSendFee", values: [BigNumberish, BytesLike, BigNumberish, boolean, BytesLike]): string; encodeFunctionData(functionFragment: "getAvailablePremiaAmount", values?: undefined): string; encodeFunctionData(functionFragment: "getAvailableRewards", values?: undefined): string; encodeFunctionData(functionFragment: "getDiscount", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getEarlyUnstakeFee", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPendingRewards", values?: undefined): string; encodeFunctionData(functionFragment: "getPendingUserRewards", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPendingWithdrawal", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPendingWithdrawals", values?: undefined): string; encodeFunctionData(functionFragment: "getPoolVotes", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "getRewardToken", values?: undefined): string; encodeFunctionData(functionFragment: "getStakeLevels", values?: undefined): string; encodeFunctionData(functionFragment: "getStakePeriodMultiplier", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getTotalPower", values?: undefined): string; encodeFunctionData(functionFragment: "getUserInfo", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getUserPower", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getUserVotes", values: [AddressLike]): string; encodeFunctionData(functionFragment: "harvest", values?: undefined): string; encodeFunctionData(functionFragment: "harvestAndStake", values: [IPremiaStaking.SwapArgsStruct, BigNumberish]): string; encodeFunctionData(functionFragment: "increaseAllowance", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; encodeFunctionData(functionFragment: "permit", values: [ AddressLike, AddressLike, BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike ]): string; encodeFunctionData(functionFragment: "sendFrom", values: [ AddressLike, BigNumberish, BytesLike, BigNumberish, AddressLike, AddressLike, BytesLike ]): string; encodeFunctionData(functionFragment: "stake", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "stakeWithPermit", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike ]): string; encodeFunctionData(functionFragment: "startWithdraw", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "symbol", values?: undefined): string; encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string; encodeFunctionData(functionFragment: "transfer", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "transferFrom", values: [AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "updateLock", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "withdraw", values?: undefined): string; decodeFunctionResult(functionFragment: "DOMAIN_SEPARATOR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "castVotes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "circulatingSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "decreaseAllowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "earlyUnstake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "estimateSendFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAvailablePremiaAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAvailableRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getEarlyUnstakeFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingUserRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingWithdrawal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPendingWithdrawals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPoolVotes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRewardToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStakeLevels", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStakePeriodMultiplier", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalPower", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserPower", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getUserVotes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "harvest", data: BytesLike): Result; decodeFunctionResult(functionFragment: "harvestAndStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "increaseAllowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "sendFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stakeWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "startWithdraw", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateLock", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; } export declare namespace AddVoteEvent { type InputTuple = [ voter: AddressLike, version: BigNumberish, target: BytesLike, amount: BigNumberish ]; type OutputTuple = [ voter: string, version: bigint, target: string, amount: bigint ]; interface OutputObject { voter: string; version: bigint; target: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ApprovalEvent { type InputTuple = [ owner: AddressLike, spender: AddressLike, value: BigNumberish ]; type OutputTuple = [owner: string, spender: string, value: bigint]; interface OutputObject { owner: string; spender: string; value: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace BridgeLockEvent { type InputTuple = [ user: AddressLike, stakePeriod: BigNumberish, lockedUntil: BigNumberish ]; type OutputTuple = [ user: string, stakePeriod: bigint, lockedUntil: bigint ]; interface OutputObject { user: string; stakePeriod: bigint; lockedUntil: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace EarlyUnstakeRewardCollectedEvent { type InputTuple = [user: AddressLike, amount: BigNumberish]; type OutputTuple = [user: string, amount: bigint]; interface OutputObject { user: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace HarvestEvent { type InputTuple = [user: AddressLike, amount: BigNumberish]; type OutputTuple = [user: string, amount: bigint]; interface OutputObject { user: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ReceiveFromChainEvent { type InputTuple = [ srcChainId: BigNumberish, srcAddress: BytesLike, toAddress: AddressLike, amount: BigNumberish ]; type OutputTuple = [ srcChainId: bigint, srcAddress: string, toAddress: string, amount: bigint ]; interface OutputObject { srcChainId: bigint; srcAddress: string; toAddress: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RemoveVoteEvent { type InputTuple = [ voter: AddressLike, version: BigNumberish, target: BytesLike, amount: BigNumberish ]; type OutputTuple = [ voter: string, version: bigint, target: string, amount: bigint ]; interface OutputObject { voter: string; version: bigint; target: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RewardsAddedEvent { type InputTuple = [amount: BigNumberish]; type OutputTuple = [amount: bigint]; interface OutputObject { amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SendToChainEvent { type InputTuple = [ sender: AddressLike, dstChainId: BigNumberish, toAddress: BytesLike, amount: BigNumberish ]; type OutputTuple = [ sender: string, dstChainId: bigint, toAddress: string, amount: bigint ]; interface OutputObject { sender: string; dstChainId: bigint; toAddress: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SetUseCustomAdapterParamsEvent { type InputTuple = [_useCustomAdapterParams: boolean]; type OutputTuple = [_useCustomAdapterParams: boolean]; interface OutputObject { _useCustomAdapterParams: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace StakeEvent { type InputTuple = [ user: AddressLike, amount: BigNumberish, stakePeriod: BigNumberish, lockedUntil: BigNumberish ]; type OutputTuple = [ user: string, amount: bigint, stakePeriod: bigint, lockedUntil: bigint ]; interface OutputObject { user: string; amount: bigint; stakePeriod: bigint; lockedUntil: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferEvent { type InputTuple = [ from: AddressLike, to: AddressLike, value: BigNumberish ]; type OutputTuple = [from: string, to: string, value: bigint]; interface OutputObject { from: string; to: string; value: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnstakeEvent { type InputTuple = [ user: AddressLike, amount: BigNumberish, fee: BigNumberish, startDate: BigNumberish ]; type OutputTuple = [ user: string, amount: bigint, fee: bigint, startDate: bigint ]; interface OutputObject { user: string; amount: bigint; fee: bigint; startDate: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateLockEvent { type InputTuple = [ user: AddressLike, oldStakePeriod: BigNumberish, newStakePeriod: BigNumberish ]; type OutputTuple = [ user: string, oldStakePeriod: bigint, newStakePeriod: bigint ]; interface OutputObject { user: string; oldStakePeriod: bigint; newStakePeriod: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WithdrawEvent { type InputTuple = [user: AddressLike, amount: BigNumberish]; type OutputTuple = [user: string, amount: bigint]; interface OutputObject { user: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IVxPremia extends BaseContract { connect(runner?: ContractRunner | null): IVxPremia; waitForDeployment(): Promise; interface: IVxPremiaInterface; 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; DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; addRewards: TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; allowance: TypedContractMethod<[ holder: AddressLike, spender: AddressLike ], [ bigint ], "view">; approve: TypedContractMethod<[ spender: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; castVotes: TypedContractMethod<[ votes: VxPremiaStorage.VoteStruct[] ], [ void ], "nonpayable">; circulatingSupply: TypedContractMethod<[], [bigint], "view">; decimals: TypedContractMethod<[], [bigint], "view">; decreaseAllowance: TypedContractMethod<[ spender: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; earlyUnstake: TypedContractMethod<[ amount: BigNumberish ], [ void ], "nonpayable">; estimateSendFee: TypedContractMethod<[ dstChainId: BigNumberish, toAddress: BytesLike, amount: BigNumberish, useZro: boolean, adapterParams: BytesLike ], [ [bigint, bigint] & { nativeFee: bigint; zroFee: bigint; } ], "view">; getAvailablePremiaAmount: TypedContractMethod<[], [bigint], "view">; getAvailableRewards: TypedContractMethod<[ ], [ [bigint, bigint] & { rewards: bigint; unstakeRewards: bigint; } ], "view">; getDiscount: TypedContractMethod<[user: AddressLike], [bigint], "view">; getEarlyUnstakeFee: TypedContractMethod<[ user: AddressLike ], [ bigint ], "view">; getPendingRewards: TypedContractMethod<[], [bigint], "view">; getPendingUserRewards: TypedContractMethod<[ user: AddressLike ], [ [bigint, bigint] & { reward: bigint; unstakeReward: bigint; } ], "view">; getPendingWithdrawal: TypedContractMethod<[ user: AddressLike ], [ [ bigint, bigint, bigint ] & { amount: bigint; startDate: bigint; unlockDate: bigint; } ], "view">; getPendingWithdrawals: TypedContractMethod<[], [bigint], "view">; getPoolVotes: TypedContractMethod<[ version: BigNumberish, target: BytesLike ], [ bigint ], "view">; getRewardToken: TypedContractMethod<[], [string], "view">; getStakeLevels: TypedContractMethod<[ ], [ IPremiaStaking.StakeLevelStructOutput[] ], "view">; getStakePeriodMultiplier: TypedContractMethod<[ period: BigNumberish ], [ bigint ], "view">; getTotalPower: TypedContractMethod<[], [bigint], "view">; getUserInfo: TypedContractMethod<[ user: AddressLike ], [ PremiaStakingStorage.UserInfoStructOutput ], "view">; getUserPower: TypedContractMethod<[user: AddressLike], [bigint], "view">; getUserVotes: TypedContractMethod<[ user: AddressLike ], [ VxPremiaStorage.VoteStructOutput[] ], "view">; harvest: TypedContractMethod<[], [void], "nonpayable">; harvestAndStake: TypedContractMethod<[ s: IPremiaStaking.SwapArgsStruct, stakePeriod: BigNumberish ], [ void ], "nonpayable">; increaseAllowance: TypedContractMethod<[ spender: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; name: TypedContractMethod<[], [string], "view">; nonces: TypedContractMethod<[owner: AddressLike], [bigint], "view">; permit: TypedContractMethod<[ owner: AddressLike, spender: AddressLike, amount: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike ], [ void ], "nonpayable">; sendFrom: TypedContractMethod<[ from: AddressLike, dstChainId: BigNumberish, toAddress: BytesLike, amount: BigNumberish, refundAddress: AddressLike, zroPaymentAddress: AddressLike, adapterParams: BytesLike ], [ void ], "payable">; stake: TypedContractMethod<[ amount: BigNumberish, period: BigNumberish ], [ void ], "nonpayable">; stakeWithPermit: TypedContractMethod<[ amount: BigNumberish, period: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike ], [ void ], "nonpayable">; startWithdraw: TypedContractMethod<[ amount: BigNumberish ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; symbol: TypedContractMethod<[], [string], "view">; totalSupply: TypedContractMethod<[], [bigint], "view">; transfer: TypedContractMethod<[ recipient: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; transferFrom: TypedContractMethod<[ holder: AddressLike, recipient: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; updateLock: TypedContractMethod<[period: BigNumberish], [void], "nonpayable">; withdraw: TypedContractMethod<[], [void], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "DOMAIN_SEPARATOR"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "addRewards"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "allowance"): TypedContractMethod<[ holder: AddressLike, spender: AddressLike ], [ bigint ], "view">; getFunction(nameOrSignature: "approve"): TypedContractMethod<[ spender: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[account: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "castVotes"): TypedContractMethod<[ votes: VxPremiaStorage.VoteStruct[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "circulatingSupply"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "decimals"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "decreaseAllowance"): TypedContractMethod<[ spender: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "earlyUnstake"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "estimateSendFee"): TypedContractMethod<[ dstChainId: BigNumberish, toAddress: BytesLike, amount: BigNumberish, useZro: boolean, adapterParams: BytesLike ], [ [bigint, bigint] & { nativeFee: bigint; zroFee: bigint; } ], "view">; getFunction(nameOrSignature: "getAvailablePremiaAmount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getAvailableRewards"): TypedContractMethod<[ ], [ [bigint, bigint] & { rewards: bigint; unstakeRewards: bigint; } ], "view">; getFunction(nameOrSignature: "getDiscount"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getEarlyUnstakeFee"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getPendingRewards"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getPendingUserRewards"): TypedContractMethod<[ user: AddressLike ], [ [bigint, bigint] & { reward: bigint; unstakeReward: bigint; } ], "view">; getFunction(nameOrSignature: "getPendingWithdrawal"): TypedContractMethod<[ user: AddressLike ], [ [ bigint, bigint, bigint ] & { amount: bigint; startDate: bigint; unlockDate: bigint; } ], "view">; getFunction(nameOrSignature: "getPendingWithdrawals"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getPoolVotes"): TypedContractMethod<[ version: BigNumberish, target: BytesLike ], [ bigint ], "view">; getFunction(nameOrSignature: "getRewardToken"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getStakeLevels"): TypedContractMethod<[], [IPremiaStaking.StakeLevelStructOutput[]], "view">; getFunction(nameOrSignature: "getStakePeriodMultiplier"): TypedContractMethod<[period: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "getTotalPower"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getUserInfo"): TypedContractMethod<[ user: AddressLike ], [ PremiaStakingStorage.UserInfoStructOutput ], "view">; getFunction(nameOrSignature: "getUserPower"): TypedContractMethod<[user: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getUserVotes"): TypedContractMethod<[ user: AddressLike ], [ VxPremiaStorage.VoteStructOutput[] ], "view">; getFunction(nameOrSignature: "harvest"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "harvestAndStake"): TypedContractMethod<[ s: IPremiaStaking.SwapArgsStruct, stakePeriod: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "increaseAllowance"): TypedContractMethod<[ spender: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "nonces"): TypedContractMethod<[owner: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "permit"): TypedContractMethod<[ owner: AddressLike, spender: AddressLike, amount: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "sendFrom"): TypedContractMethod<[ from: AddressLike, dstChainId: BigNumberish, toAddress: BytesLike, amount: BigNumberish, refundAddress: AddressLike, zroPaymentAddress: AddressLike, adapterParams: BytesLike ], [ void ], "payable">; getFunction(nameOrSignature: "stake"): TypedContractMethod<[ amount: BigNumberish, period: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "stakeWithPermit"): TypedContractMethod<[ amount: BigNumberish, period: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "startWithdraw"): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "symbol"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "totalSupply"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "transfer"): TypedContractMethod<[ recipient: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "transferFrom"): TypedContractMethod<[ holder: AddressLike, recipient: AddressLike, amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "updateLock"): TypedContractMethod<[period: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "withdraw"): TypedContractMethod<[], [void], "nonpayable">; getEvent(key: "AddVote"): TypedContractEvent; getEvent(key: "Approval"): TypedContractEvent; getEvent(key: "BridgeLock"): TypedContractEvent; getEvent(key: "EarlyUnstakeRewardCollected"): TypedContractEvent; getEvent(key: "Harvest"): TypedContractEvent; getEvent(key: "ReceiveFromChain"): TypedContractEvent; getEvent(key: "RemoveVote"): TypedContractEvent; getEvent(key: "RewardsAdded"): TypedContractEvent; getEvent(key: "SendToChain"): TypedContractEvent; getEvent(key: "SetUseCustomAdapterParams"): TypedContractEvent; getEvent(key: "Stake"): TypedContractEvent; getEvent(key: "Transfer"): TypedContractEvent; getEvent(key: "Unstake"): TypedContractEvent; getEvent(key: "UpdateLock"): TypedContractEvent; getEvent(key: "Withdraw"): TypedContractEvent; filters: { "AddVote(address,uint8,bytes,uint256)": TypedContractEvent; AddVote: TypedContractEvent; "Approval(address,address,uint256)": TypedContractEvent; Approval: TypedContractEvent; "BridgeLock(address,uint64,uint64)": TypedContractEvent; BridgeLock: TypedContractEvent; "EarlyUnstakeRewardCollected(address,uint256)": TypedContractEvent; EarlyUnstakeRewardCollected: TypedContractEvent; "Harvest(address,uint256)": TypedContractEvent; Harvest: TypedContractEvent; "ReceiveFromChain(uint16,bytes,address,uint256)": TypedContractEvent; ReceiveFromChain: TypedContractEvent; "RemoveVote(address,uint8,bytes,uint256)": TypedContractEvent; RemoveVote: TypedContractEvent; "RewardsAdded(uint256)": TypedContractEvent; RewardsAdded: TypedContractEvent; "SendToChain(address,uint16,bytes,uint256)": TypedContractEvent; SendToChain: TypedContractEvent; "SetUseCustomAdapterParams(bool)": TypedContractEvent; SetUseCustomAdapterParams: TypedContractEvent; "Stake(address,uint256,uint64,uint64)": TypedContractEvent; Stake: TypedContractEvent; "Transfer(address,address,uint256)": TypedContractEvent; Transfer: TypedContractEvent; "Unstake(address,uint256,uint256,uint256)": TypedContractEvent; Unstake: TypedContractEvent; "UpdateLock(address,uint64,uint64)": TypedContractEvent; UpdateLock: TypedContractEvent; "Withdraw(address,uint256)": TypedContractEvent; Withdraw: TypedContractEvent; }; }