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 GainsNetworkStakingInterface extends utils.Interface {
    functions: {
        'accDaiPerToken()': FunctionFragment;
        'boostsP(uint256)': FunctionFragment;
        'checkBoostsP(uint256[5])': FunctionFragment;
        'dai()': FunctionFragment;
        'distributeRewardDai(uint256)': FunctionFragment;
        'govFund()': FunctionFragment;
        'harvest()': FunctionFragment;
        'maxNftsStaked()': FunctionFragment;
        'nfts(uint256)': FunctionFragment;
        'pendingRewardDai()': FunctionFragment;
        'setBoostsP(uint256[5])': FunctionFragment;
        'setGovFund(address)': FunctionFragment;
        'setMaxNftsStaked(uint256)': FunctionFragment;
        'stakeNft(uint256,uint256)': FunctionFragment;
        'stakeTokens(uint256)': FunctionFragment;
        'token()': FunctionFragment;
        'tokenBalance()': FunctionFragment;
        'totalRewardsDistributedDai()': FunctionFragment;
        'unstakeNft(uint256)': FunctionFragment;
        'unstakeTokens(uint256)': FunctionFragment;
        'userNfts(address,uint256)': FunctionFragment;
        'users(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'accDaiPerToken' | 'boostsP' | 'checkBoostsP' | 'dai' | 'distributeRewardDai' | 'govFund' | 'harvest' | 'maxNftsStaked' | 'nfts' | 'pendingRewardDai' | 'setBoostsP' | 'setGovFund' | 'setMaxNftsStaked' | 'stakeNft' | 'stakeTokens' | 'token' | 'tokenBalance' | 'totalRewardsDistributedDai' | 'unstakeNft' | 'unstakeTokens' | 'userNfts' | 'users'): FunctionFragment;
    encodeFunctionData(functionFragment: 'accDaiPerToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'boostsP', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'checkBoostsP', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ]
    ]): string;
    encodeFunctionData(functionFragment: 'dai', values?: undefined): string;
    encodeFunctionData(functionFragment: 'distributeRewardDai', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'govFund', values?: undefined): string;
    encodeFunctionData(functionFragment: 'harvest', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxNftsStaked', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nfts', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pendingRewardDai', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setBoostsP', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ]
    ]): string;
    encodeFunctionData(functionFragment: 'setGovFund', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setMaxNftsStaked', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeNft', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stakeTokens', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'token', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalRewardsDistributedDai', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unstakeNft', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unstakeTokens', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'userNfts', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'users', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'accDaiPerToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'boostsP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkBoostsP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'dai', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distributeRewardDai', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'govFund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'harvest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxNftsStaked', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nfts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingRewardDai', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBoostsP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setGovFund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxNftsStaked', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeNft', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stakeTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalRewardsDistributedDai', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakeNft', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unstakeTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userNfts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'users', data: BytesLike): Result;
    events: {
        'BoostsUpdated(uint256[5])': EventFragment;
        'DaiDistributed(uint256)': EventFragment;
        'DaiHarvested(address,uint256)': EventFragment;
        'GovFundUpdated(address)': EventFragment;
        'MaxNftsStakedUpdated(uint256)': EventFragment;
        'NftStaked(address,uint256,uint256)': EventFragment;
        'NftUnstaked(address,uint256,uint256)': EventFragment;
        'TokensStaked(address,uint256)': EventFragment;
        'TokensUnstaked(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'BoostsUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DaiDistributed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DaiHarvested'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'GovFundUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MaxNftsStakedUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NftStaked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NftUnstaked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokensStaked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokensUnstaked'): EventFragment;
}
export interface BoostsUpdatedEventObject {
    boosts: [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber];
}
export declare type BoostsUpdatedEvent = TypedEvent<[
    [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
], BoostsUpdatedEventObject>;
export declare type BoostsUpdatedEventFilter = TypedEventFilter<BoostsUpdatedEvent>;
export interface DaiDistributedEventObject {
    amount: BigNumber;
}
export declare type DaiDistributedEvent = TypedEvent<[BigNumber], DaiDistributedEventObject>;
export declare type DaiDistributedEventFilter = TypedEventFilter<DaiDistributedEvent>;
export interface DaiHarvestedEventObject {
    user: string;
    amount: BigNumber;
}
export declare type DaiHarvestedEvent = TypedEvent<[string, BigNumber], DaiHarvestedEventObject>;
export declare type DaiHarvestedEventFilter = TypedEventFilter<DaiHarvestedEvent>;
export interface GovFundUpdatedEventObject {
    value: string;
}
export declare type GovFundUpdatedEvent = TypedEvent<[string], GovFundUpdatedEventObject>;
export declare type GovFundUpdatedEventFilter = TypedEventFilter<GovFundUpdatedEvent>;
export interface MaxNftsStakedUpdatedEventObject {
    value: BigNumber;
}
export declare type MaxNftsStakedUpdatedEvent = TypedEvent<[BigNumber], MaxNftsStakedUpdatedEventObject>;
export declare type MaxNftsStakedUpdatedEventFilter = TypedEventFilter<MaxNftsStakedUpdatedEvent>;
export interface NftStakedEventObject {
    user: string;
    nftType: BigNumber;
    nftId: BigNumber;
}
export declare type NftStakedEvent = TypedEvent<[string, BigNumber, BigNumber], NftStakedEventObject>;
export declare type NftStakedEventFilter = TypedEventFilter<NftStakedEvent>;
export interface NftUnstakedEventObject {
    user: string;
    nftType: BigNumber;
    nftId: BigNumber;
}
export declare type NftUnstakedEvent = TypedEvent<[string, BigNumber, BigNumber], NftUnstakedEventObject>;
export declare type NftUnstakedEventFilter = TypedEventFilter<NftUnstakedEvent>;
export interface TokensStakedEventObject {
    user: string;
    amount: BigNumber;
}
export declare type TokensStakedEvent = TypedEvent<[string, BigNumber], TokensStakedEventObject>;
export declare type TokensStakedEventFilter = TypedEventFilter<TokensStakedEvent>;
export interface TokensUnstakedEventObject {
    user: string;
    amount: BigNumber;
}
export declare type TokensUnstakedEvent = TypedEvent<[string, BigNumber], TokensUnstakedEventObject>;
export declare type TokensUnstakedEventFilter = TypedEventFilter<TokensUnstakedEvent>;
export interface GainsNetworkStaking extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: GainsNetworkStakingInterface;
    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: {
        accDaiPerToken(overrides?: CallOverrides): Promise<[BigNumber]>;
        boostsP(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        checkBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: CallOverrides): Promise<[void]>;
        dai(overrides?: CallOverrides): Promise<[string]>;
        distributeRewardDai(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        govFund(overrides?: CallOverrides): Promise<[string]>;
        harvest(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        maxNftsStaked(overrides?: CallOverrides): Promise<[BigNumber]>;
        nfts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pendingRewardDai(overrides?: CallOverrides): Promise<[BigNumber]>;
        setBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setGovFund(value: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxNftsStaked(value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeNft(nftType: PromiseOrValue<BigNumberish>, nftId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        token(overrides?: CallOverrides): Promise<[string]>;
        tokenBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalRewardsDistributedDai(overrides?: CallOverrides): Promise<[BigNumber]>;
        unstakeNft(nftIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unstakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userNfts(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            nftId: BigNumber;
            nftType: BigNumber;
        }>;
        users(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            stakedTokens: BigNumber;
            debtDai: BigNumber;
            stakedNftsCount: BigNumber;
            totalBoostTokens: BigNumber;
            harvestedRewardsDai: BigNumber;
        }>;
    };
    accDaiPerToken(overrides?: CallOverrides): Promise<BigNumber>;
    boostsP(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    checkBoostsP(value: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ], overrides?: CallOverrides): Promise<void>;
    dai(overrides?: CallOverrides): Promise<string>;
    distributeRewardDai(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    govFund(overrides?: CallOverrides): Promise<string>;
    harvest(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    maxNftsStaked(overrides?: CallOverrides): Promise<BigNumber>;
    nfts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pendingRewardDai(overrides?: CallOverrides): Promise<BigNumber>;
    setBoostsP(value: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setGovFund(value: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxNftsStaked(value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeNft(nftType: PromiseOrValue<BigNumberish>, nftId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    token(overrides?: CallOverrides): Promise<string>;
    tokenBalance(overrides?: CallOverrides): Promise<BigNumber>;
    totalRewardsDistributedDai(overrides?: CallOverrides): Promise<BigNumber>;
    unstakeNft(nftIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unstakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userNfts(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        nftId: BigNumber;
        nftType: BigNumber;
    }>;
    users(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        stakedTokens: BigNumber;
        debtDai: BigNumber;
        stakedNftsCount: BigNumber;
        totalBoostTokens: BigNumber;
        harvestedRewardsDai: BigNumber;
    }>;
    callStatic: {
        accDaiPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        boostsP(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        checkBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: CallOverrides): Promise<void>;
        dai(overrides?: CallOverrides): Promise<string>;
        distributeRewardDai(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        govFund(overrides?: CallOverrides): Promise<string>;
        harvest(overrides?: CallOverrides): Promise<void>;
        maxNftsStaked(overrides?: CallOverrides): Promise<BigNumber>;
        nfts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pendingRewardDai(overrides?: CallOverrides): Promise<BigNumber>;
        setBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: CallOverrides): Promise<void>;
        setGovFund(value: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setMaxNftsStaked(value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeNft(nftType: PromiseOrValue<BigNumberish>, nftId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        token(overrides?: CallOverrides): Promise<string>;
        tokenBalance(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewardsDistributedDai(overrides?: CallOverrides): Promise<BigNumber>;
        unstakeNft(nftIndex: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unstakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        userNfts(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            nftId: BigNumber;
            nftType: BigNumber;
        }>;
        users(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            stakedTokens: BigNumber;
            debtDai: BigNumber;
            stakedNftsCount: BigNumber;
            totalBoostTokens: BigNumber;
            harvestedRewardsDai: BigNumber;
        }>;
    };
    filters: {
        'BoostsUpdated(uint256[5])'(boosts?: null): BoostsUpdatedEventFilter;
        BoostsUpdated(boosts?: null): BoostsUpdatedEventFilter;
        'DaiDistributed(uint256)'(amount?: null): DaiDistributedEventFilter;
        DaiDistributed(amount?: null): DaiDistributedEventFilter;
        'DaiHarvested(address,uint256)'(user?: PromiseOrValue<string> | null, amount?: null): DaiHarvestedEventFilter;
        DaiHarvested(user?: PromiseOrValue<string> | null, amount?: null): DaiHarvestedEventFilter;
        'GovFundUpdated(address)'(value?: null): GovFundUpdatedEventFilter;
        GovFundUpdated(value?: null): GovFundUpdatedEventFilter;
        'MaxNftsStakedUpdated(uint256)'(value?: null): MaxNftsStakedUpdatedEventFilter;
        MaxNftsStakedUpdated(value?: null): MaxNftsStakedUpdatedEventFilter;
        'NftStaked(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, nftType?: PromiseOrValue<BigNumberish> | null, nftId?: null): NftStakedEventFilter;
        NftStaked(user?: PromiseOrValue<string> | null, nftType?: PromiseOrValue<BigNumberish> | null, nftId?: null): NftStakedEventFilter;
        'NftUnstaked(address,uint256,uint256)'(user?: PromiseOrValue<string> | null, nftType?: PromiseOrValue<BigNumberish> | null, nftId?: null): NftUnstakedEventFilter;
        NftUnstaked(user?: PromiseOrValue<string> | null, nftType?: PromiseOrValue<BigNumberish> | null, nftId?: null): NftUnstakedEventFilter;
        'TokensStaked(address,uint256)'(user?: PromiseOrValue<string> | null, amount?: null): TokensStakedEventFilter;
        TokensStaked(user?: PromiseOrValue<string> | null, amount?: null): TokensStakedEventFilter;
        'TokensUnstaked(address,uint256)'(user?: PromiseOrValue<string> | null, amount?: null): TokensUnstakedEventFilter;
        TokensUnstaked(user?: PromiseOrValue<string> | null, amount?: null): TokensUnstakedEventFilter;
    };
    estimateGas: {
        accDaiPerToken(overrides?: CallOverrides): Promise<BigNumber>;
        boostsP(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        checkBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: CallOverrides): Promise<BigNumber>;
        dai(overrides?: CallOverrides): Promise<BigNumber>;
        distributeRewardDai(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        govFund(overrides?: CallOverrides): Promise<BigNumber>;
        harvest(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        maxNftsStaked(overrides?: CallOverrides): Promise<BigNumber>;
        nfts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingRewardDai(overrides?: CallOverrides): Promise<BigNumber>;
        setBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setGovFund(value: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxNftsStaked(value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeNft(nftType: PromiseOrValue<BigNumberish>, nftId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        token(overrides?: CallOverrides): Promise<BigNumber>;
        tokenBalance(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewardsDistributedDai(overrides?: CallOverrides): Promise<BigNumber>;
        unstakeNft(nftIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unstakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userNfts(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        users(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        accDaiPerToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        boostsP(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        checkBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        dai(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        distributeRewardDai(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        govFund(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        harvest(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        maxNftsStaked(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nfts(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingRewardDai(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setBoostsP(value: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setGovFund(value: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxNftsStaked(value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeNft(nftType: PromiseOrValue<BigNumberish>, nftId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        token(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalRewardsDistributedDai(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unstakeNft(nftIndex: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unstakeTokens(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userNfts(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        users(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
