import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export declare namespace IStakeManager { type DepositInfoStruct = { deposit: BigNumberish; staked: boolean; stake: BigNumberish; unstakeDelaySec: BigNumberish; withdrawTime: BigNumberish; }; type DepositInfoStructOutput = [ BigNumber, boolean, BigNumber, number, number ] & { deposit: BigNumber; staked: boolean; stake: BigNumber; unstakeDelaySec: number; withdrawTime: number; }; } export interface IStakeManagerInterface extends utils.Interface { contractName: "IStakeManager"; functions: { "addStake(uint32)": FunctionFragment; "balanceOf(address)": FunctionFragment; "depositTo(address)": FunctionFragment; "getDepositInfo(address)": FunctionFragment; "unlockStake()": FunctionFragment; "withdrawStake(address)": FunctionFragment; "withdrawTo(address,uint256)": FunctionFragment; }; encodeFunctionData(functionFragment: "addStake", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; encodeFunctionData(functionFragment: "depositTo", values: [string]): string; encodeFunctionData(functionFragment: "getDepositInfo", values: [string]): string; encodeFunctionData(functionFragment: "unlockStake", values?: undefined): string; encodeFunctionData(functionFragment: "withdrawStake", values: [string]): string; encodeFunctionData(functionFragment: "withdrawTo", values: [string, BigNumberish]): string; decodeFunctionResult(functionFragment: "addStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositTo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDepositInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unlockStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawStake", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawTo", data: BytesLike): Result; events: { "Deposited(address,uint256)": EventFragment; "StakeLocked(address,uint256,uint256)": EventFragment; "StakeUnlocked(address,uint256)": EventFragment; "StakeWithdrawn(address,address,uint256)": EventFragment; "Withdrawn(address,address,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "Deposited"): EventFragment; getEvent(nameOrSignatureOrTopic: "StakeLocked"): EventFragment; getEvent(nameOrSignatureOrTopic: "StakeUnlocked"): EventFragment; getEvent(nameOrSignatureOrTopic: "StakeWithdrawn"): EventFragment; getEvent(nameOrSignatureOrTopic: "Withdrawn"): EventFragment; } export type DepositedEvent = TypedEvent<[ string, BigNumber ], { account: string; totalDeposit: BigNumber; }>; export type DepositedEventFilter = TypedEventFilter; export type StakeLockedEvent = TypedEvent<[ string, BigNumber, BigNumber ], { account: string; totalStaked: BigNumber; unstakeDelaySec: BigNumber; }>; export type StakeLockedEventFilter = TypedEventFilter; export type StakeUnlockedEvent = TypedEvent<[ string, BigNumber ], { account: string; withdrawTime: BigNumber; }>; export type StakeUnlockedEventFilter = TypedEventFilter; export type StakeWithdrawnEvent = TypedEvent<[ string, string, BigNumber ], { account: string; withdrawAddress: string; amount: BigNumber; }>; export type StakeWithdrawnEventFilter = TypedEventFilter; export type WithdrawnEvent = TypedEvent<[ string, string, BigNumber ], { account: string; withdrawAddress: string; amount: BigNumber; }>; export type WithdrawnEventFilter = TypedEventFilter; export interface IStakeManager extends BaseContract { contractName: "IStakeManager"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IStakeManagerInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { addStake(_unstakeDelaySec: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; depositTo(account: string, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; getDepositInfo(account: string, overrides?: CallOverrides): Promise<[ IStakeManager.DepositInfoStructOutput ] & { info: IStakeManager.DepositInfoStructOutput; }>; unlockStake(overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawStake(withdrawAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawTo(withdrawAddress: string, withdrawAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; addStake(_unstakeDelaySec: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; depositTo(account: string, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; getDepositInfo(account: string, overrides?: CallOverrides): Promise; unlockStake(overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawStake(withdrawAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawTo(withdrawAddress: string, withdrawAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { addStake(_unstakeDelaySec: BigNumberish, overrides?: CallOverrides): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; depositTo(account: string, overrides?: CallOverrides): Promise; getDepositInfo(account: string, overrides?: CallOverrides): Promise; unlockStake(overrides?: CallOverrides): Promise; withdrawStake(withdrawAddress: string, overrides?: CallOverrides): Promise; withdrawTo(withdrawAddress: string, withdrawAmount: BigNumberish, overrides?: CallOverrides): Promise; }; filters: { "Deposited(address,uint256)"(account?: string | null, totalDeposit?: null): DepositedEventFilter; Deposited(account?: string | null, totalDeposit?: null): DepositedEventFilter; "StakeLocked(address,uint256,uint256)"(account?: string | null, totalStaked?: null, unstakeDelaySec?: null): StakeLockedEventFilter; StakeLocked(account?: string | null, totalStaked?: null, unstakeDelaySec?: null): StakeLockedEventFilter; "StakeUnlocked(address,uint256)"(account?: string | null, withdrawTime?: null): StakeUnlockedEventFilter; StakeUnlocked(account?: string | null, withdrawTime?: null): StakeUnlockedEventFilter; "StakeWithdrawn(address,address,uint256)"(account?: string | null, withdrawAddress?: null, amount?: null): StakeWithdrawnEventFilter; StakeWithdrawn(account?: string | null, withdrawAddress?: null, amount?: null): StakeWithdrawnEventFilter; "Withdrawn(address,address,uint256)"(account?: string | null, withdrawAddress?: null, amount?: null): WithdrawnEventFilter; Withdrawn(account?: string | null, withdrawAddress?: null, amount?: null): WithdrawnEventFilter; }; estimateGas: { addStake(_unstakeDelaySec: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; depositTo(account: string, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; getDepositInfo(account: string, overrides?: CallOverrides): Promise; unlockStake(overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawStake(withdrawAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawTo(withdrawAddress: string, withdrawAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { addStake(_unstakeDelaySec: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; depositTo(account: string, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; getDepositInfo(account: string, overrides?: CallOverrides): Promise; unlockStake(overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawStake(withdrawAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawTo(withdrawAddress: string, withdrawAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; }