import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface MuxRewardTrackerInterface extends utils.Interface {
    functions: {
        'allowance(address,address)': FunctionFragment;
        'allowances(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'averageStakedAmounts(address)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'balances(address)': FunctionFragment;
        'claim(address)': FunctionFragment;
        'claimForAccount(address,address)': FunctionFragment;
        'claimable(address)': FunctionFragment;
        'claimableReward(address)': FunctionFragment;
        'cumulativeRewardPerToken()': FunctionFragment;
        'cumulativeRewards(address)': FunctionFragment;
        'decimals()': FunctionFragment;
        'depositBalances(address,address)': FunctionFragment;
        'distributor()': FunctionFragment;
        'inPrivateClaimingMode()': FunctionFragment;
        'inPrivateStakingMode()': FunctionFragment;
        'inPrivateTransferMode()': FunctionFragment;
        'initialize(string,string,address[],address)': FunctionFragment;
        'isDepositToken(address)': FunctionFragment;
        'isHandler(address)': FunctionFragment;
        'lastRewardBalance()': FunctionFragment;
        'name()': FunctionFragment;
        'owner()': FunctionFragment;
        'previousCumulatedRewardPerToken(address)': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'rewardToken()': FunctionFragment;
        'setDepositToken(address,bool)': FunctionFragment;
        'setHandler(address,bool)': FunctionFragment;
        'setInPrivateClaimingMode(bool)': FunctionFragment;
        'setInPrivateStakingMode(bool)': FunctionFragment;
        'setInPrivateTransferMode(bool)': FunctionFragment;
        'stake(address,uint256)': FunctionFragment;
        'stakeForAccount(address,address,address,uint256)': FunctionFragment;
        'stakedAmounts(address)': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalDepositSupply(address)': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'unstake(address,uint256)': FunctionFragment;
        'unstakeForAccount(address,address,uint256,address)': FunctionFragment;
        'updateRewards()': FunctionFragment;
        'withdrawToken(address,address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'allowance' | 'allowances' | 'approve' | 'averageStakedAmounts' | 'balanceOf' | 'balances' | 'claim' | 'claimForAccount' | 'claimable' | 'claimableReward' | 'cumulativeRewardPerToken' | 'cumulativeRewards' | 'decimals' | 'depositBalances' | 'distributor' | 'inPrivateClaimingMode' | 'inPrivateStakingMode' | 'inPrivateTransferMode' | 'initialize' | 'isDepositToken' | 'isHandler' | 'lastRewardBalance' | 'name' | 'owner' | 'previousCumulatedRewardPerToken' | 'renounceOwnership' | 'rewardToken' | 'setDepositToken' | 'setHandler' | 'setInPrivateClaimingMode' | 'setInPrivateStakingMode' | 'setInPrivateTransferMode' | 'stake' | 'stakeForAccount' | 'stakedAmounts' | 'symbol' | 'totalDepositSupply' | 'totalSupply' | 'transfer' | 'transferFrom' | 'transferOwnership' | 'unstake' | 'unstakeForAccount' | 'updateRewards' | 'withdrawToken'): FunctionFragment;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'allowances', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'averageStakedAmounts', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claim', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimForAccount', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimable', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimableReward', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'cumulativeRewardPerToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cumulativeRewards', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'depositBalances', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'distributor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'inPrivateClaimingMode', values?: undefined): string;
    encodeFunctionData(functionFragment: 'inPrivateStakingMode', values?: undefined): string;
    encodeFunctionData(functionFragment: 'inPrivateTransferMode', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>[], PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isDepositToken', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isHandler', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastRewardBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'previousCumulatedRewardPerToken', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setDepositToken', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setHandler', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setInPrivateClaimingMode', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setInPrivateStakingMode', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setInPrivateTransferMode', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeForAccount', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakedAmounts', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalDepositSupply', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'unstake', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unstakeForAccount', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updateRewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawToken', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'averageStakedAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claim', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimForAccount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimableReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cumulativeRewardPerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cumulativeRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositBalances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'inPrivateClaimingMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'inPrivateStakingMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'inPrivateTransferMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isDepositToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isHandler', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastRewardBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previousCumulatedRewardPerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDepositToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setHandler', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setInPrivateClaimingMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setInPrivateStakingMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setInPrivateTransferMode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeForAccount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakedAmounts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalDepositSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakeForAccount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawToken', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'Claim(address,uint256)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Claim'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
}
export interface ApprovalEventObject {
    owner: string;
    spender: string;
    value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ClaimEventObject {
    receiver: string;
    amount: BigNumber;
}
export declare type ClaimEvent = TypedEvent<[string, BigNumber], ClaimEventObject>;
export declare type ClaimEventFilter = TypedEventFilter<ClaimEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface MuxRewardTracker extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MuxRewardTrackerInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        allowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        averageStakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        balances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        claim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimForAccount(_account: PromiseOrValue<string>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimable(_account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimableReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        cumulativeRewardPerToken(overrides?: CallOverrides): Promise<[BigNumber]>;
        cumulativeRewards(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        depositBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        distributor(overrides?: CallOverrides): Promise<[string]>;
        inPrivateClaimingMode(overrides?: CallOverrides): Promise<[boolean]>;
        inPrivateStakingMode(overrides?: CallOverrides): Promise<[boolean]>;
        inPrivateTransferMode(overrides?: CallOverrides): Promise<[boolean]>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _depositTokens: PromiseOrValue<string>[], _distributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isDepositToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isHandler(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        lastRewardBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        previousCumulatedRewardPerToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewardToken(overrides?: CallOverrides): Promise<[string]>;
        setDepositToken(_depositToken: PromiseOrValue<string>, _isDepositToken: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setHandler(_handler: PromiseOrValue<string>, _isActive: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setInPrivateClaimingMode(_inPrivateClaimingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setInPrivateStakingMode(_inPrivateStakingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setInPrivateTransferMode(_inPrivateTransferMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeForAccount(_fundingAccount: PromiseOrValue<string>, _account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        totalDepositSupply(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstakeForAccount(_account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateRewards(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    allowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    averageStakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    balances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    claim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimForAccount(_account: PromiseOrValue<string>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimable(_account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimableReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    cumulativeRewardPerToken(overrides?: CallOverrides): Promise<BigNumber>;
    cumulativeRewards(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    decimals(overrides?: CallOverrides): Promise<number>;
    depositBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    distributor(overrides?: CallOverrides): Promise<string>;
    inPrivateClaimingMode(overrides?: CallOverrides): Promise<boolean>;
    inPrivateStakingMode(overrides?: CallOverrides): Promise<boolean>;
    inPrivateTransferMode(overrides?: CallOverrides): Promise<boolean>;
    initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _depositTokens: PromiseOrValue<string>[], _distributor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isDepositToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isHandler(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    lastRewardBalance(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    previousCumulatedRewardPerToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewardToken(overrides?: CallOverrides): Promise<string>;
    setDepositToken(_depositToken: PromiseOrValue<string>, _isDepositToken: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setHandler(_handler: PromiseOrValue<string>, _isActive: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setInPrivateClaimingMode(_inPrivateClaimingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setInPrivateStakingMode(_inPrivateStakingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setInPrivateTransferMode(_inPrivateTransferMode: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeForAccount(_fundingAccount: PromiseOrValue<string>, _account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalDepositSupply(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstakeForAccount(_account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateRewards(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        allowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        averageStakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claim(_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimForAccount(_account: PromiseOrValue<string>, _receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimable(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimableReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        cumulativeRewardPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        cumulativeRewards(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<number>;
        depositBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        distributor(overrides?: CallOverrides): Promise<string>;
        inPrivateClaimingMode(overrides?: CallOverrides): Promise<boolean>;
        inPrivateStakingMode(overrides?: CallOverrides): Promise<boolean>;
        inPrivateTransferMode(overrides?: CallOverrides): Promise<boolean>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _depositTokens: PromiseOrValue<string>[], _distributor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isDepositToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isHandler(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        lastRewardBalance(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        previousCumulatedRewardPerToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        rewardToken(overrides?: CallOverrides): Promise<string>;
        setDepositToken(_depositToken: PromiseOrValue<string>, _isDepositToken: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setHandler(_handler: PromiseOrValue<string>, _isActive: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setInPrivateClaimingMode(_inPrivateClaimingMode: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setInPrivateStakingMode(_inPrivateStakingMode: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setInPrivateTransferMode(_inPrivateTransferMode: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        stake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeForAccount(_fundingAccount: PromiseOrValue<string>, _account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalDepositSupply(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        unstake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unstakeForAccount(_account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateRewards(overrides?: CallOverrides): Promise<void>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'Claim(address,uint256)'(receiver?: null, amount?: null): ClaimEventFilter;
        Claim(receiver?: null, amount?: null): ClaimEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
    };
    estimateGas: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        allowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        averageStakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimForAccount(_account: PromiseOrValue<string>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimable(_account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimableReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        cumulativeRewardPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        cumulativeRewards(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        depositBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        distributor(overrides?: CallOverrides): Promise<BigNumber>;
        inPrivateClaimingMode(overrides?: CallOverrides): Promise<BigNumber>;
        inPrivateStakingMode(overrides?: CallOverrides): Promise<BigNumber>;
        inPrivateTransferMode(overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _depositTokens: PromiseOrValue<string>[], _distributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isDepositToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isHandler(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastRewardBalance(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        previousCumulatedRewardPerToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewardToken(overrides?: CallOverrides): Promise<BigNumber>;
        setDepositToken(_depositToken: PromiseOrValue<string>, _isDepositToken: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setHandler(_handler: PromiseOrValue<string>, _isActive: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setInPrivateClaimingMode(_inPrivateClaimingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setInPrivateStakingMode(_inPrivateStakingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setInPrivateTransferMode(_inPrivateTransferMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeForAccount(_fundingAccount: PromiseOrValue<string>, _account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalDepositSupply(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstakeForAccount(_account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateRewards(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        averageStakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balances(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimForAccount(_account: PromiseOrValue<string>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimable(_account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimableReward(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cumulativeRewardPerToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cumulativeRewards(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositBalances(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        distributor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        inPrivateClaimingMode(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        inPrivateStakingMode(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        inPrivateTransferMode(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _depositTokens: PromiseOrValue<string>[], _distributor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isDepositToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isHandler(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastRewardBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previousCumulatedRewardPerToken(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setDepositToken(_depositToken: PromiseOrValue<string>, _isDepositToken: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setHandler(_handler: PromiseOrValue<string>, _isActive: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setInPrivateClaimingMode(_inPrivateClaimingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setInPrivateStakingMode(_inPrivateStakingMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setInPrivateTransferMode(_inPrivateTransferMode: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeForAccount(_fundingAccount: PromiseOrValue<string>, _account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakedAmounts(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalDepositSupply(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstake(_depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstakeForAccount(_account: PromiseOrValue<string>, _depositToken: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateRewards(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawToken(_token: PromiseOrValue<string>, _account: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
