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 GroLabsVaultInterface extends utils.Interface {
    functions: {
        'BASE_ALLOWANCE()': FunctionFragment;
        'MAXIMUM_STRATEGIES()': FunctionFragment;
        'activateAllowance(bool)': FunctionFragment;
        'activation()': FunctionFragment;
        'addStrategy(address,uint256,uint256,uint256)': FunctionFragment;
        'addStrategyToQueue(address)': FunctionFragment;
        'addToWhitelist(address)': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'allowance()': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'bouncer()': FunctionFragment;
        'claimed(address)': FunctionFragment;
        'creditAvailable()': FunctionFragment;
        'creditAvailable(address)': FunctionFragment;
        'debtOutstanding(address)': FunctionFragment;
        'debtOutstanding()': FunctionFragment;
        'debtRatio()': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'deposit(uint256)': FunctionFragment;
        'depositLimit()': FunctionFragment;
        'getPricePerShare()': FunctionFragment;
        'getStrategiesLength()': FunctionFragment;
        'getStrategyAssets(uint256)': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'lastReport()': FunctionFragment;
        'lockedProfit()': FunctionFragment;
        'migrateStrategy(address,address)': FunctionFragment;
        'name()': FunctionFragment;
        'owner()': FunctionFragment;
        'releaseFactor()': FunctionFragment;
        'removeFromWhitelist(address)': FunctionFragment;
        'removeStrategyFromQueue(address)': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'report(uint256,uint256,uint256)': FunctionFragment;
        'revokeStrategy()': FunctionFragment;
        'rewards()': FunctionFragment;
        'setBouncer(address)': FunctionFragment;
        'setDebtRatio(address,uint256)': FunctionFragment;
        'setDebtRatios(uint256[])': FunctionFragment;
        'setDepositLimit(uint256)': FunctionFragment;
        'setProfitRelease(uint256)': FunctionFragment;
        'setRewards(address)': FunctionFragment;
        'setUserAllowance(address,uint256)': FunctionFragment;
        'setVaultFee(uint256)': FunctionFragment;
        'setWithdrawalQueue(address[])': FunctionFragment;
        'strategies(address)': FunctionFragment;
        'strategyDebt()': FunctionFragment;
        'strategyHarvest(uint256)': FunctionFragment;
        'strategyHarvestTrigger(uint256,uint256)': FunctionFragment;
        'sweep(address,address)': FunctionFragment;
        'symbol()': FunctionFragment;
        'token()': FunctionFragment;
        'totalAssets()': FunctionFragment;
        'totalDebt()': FunctionFragment;
        'totalEstimatedAssets()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'updateStrategyMaxDebtPerHarvest(address,uint256)': FunctionFragment;
        'updateStrategyMinDebtPerHarvest(address,uint256)': FunctionFragment;
        'userAllowance(address)': FunctionFragment;
        'vaultFee()': FunctionFragment;
        'whitelist(address)': FunctionFragment;
        'withdraw(uint256,uint256)': FunctionFragment;
        'withdrawalQueue(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'BASE_ALLOWANCE' | 'MAXIMUM_STRATEGIES' | 'activateAllowance' | 'activation' | 'addStrategy' | 'addStrategyToQueue' | 'addToWhitelist' | 'allowance(address,address)' | 'allowance()' | 'approve' | 'balanceOf' | 'bouncer' | 'claimed' | 'creditAvailable()' | 'creditAvailable(address)' | 'debtOutstanding(address)' | 'debtOutstanding()' | 'debtRatio' | 'decimals' | 'decreaseAllowance' | 'deposit' | 'depositLimit' | 'getPricePerShare' | 'getStrategiesLength' | 'getStrategyAssets' | 'increaseAllowance' | 'lastReport' | 'lockedProfit' | 'migrateStrategy' | 'name' | 'owner' | 'releaseFactor' | 'removeFromWhitelist' | 'removeStrategyFromQueue' | 'renounceOwnership' | 'report' | 'revokeStrategy' | 'rewards' | 'setBouncer' | 'setDebtRatio' | 'setDebtRatios' | 'setDepositLimit' | 'setProfitRelease' | 'setRewards' | 'setUserAllowance' | 'setVaultFee' | 'setWithdrawalQueue' | 'strategies' | 'strategyDebt' | 'strategyHarvest' | 'strategyHarvestTrigger' | 'sweep' | 'symbol' | 'token' | 'totalAssets' | 'totalDebt' | 'totalEstimatedAssets' | 'totalSupply' | 'transfer' | 'transferFrom' | 'transferOwnership' | 'updateStrategyMaxDebtPerHarvest' | 'updateStrategyMinDebtPerHarvest' | 'userAllowance' | 'vaultFee' | 'whitelist' | 'withdraw' | 'withdrawalQueue'): FunctionFragment;
    encodeFunctionData(functionFragment: 'BASE_ALLOWANCE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAXIMUM_STRATEGIES', values?: undefined): string;
    encodeFunctionData(functionFragment: 'activateAllowance', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'activation', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addStrategy', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'addStrategyToQueue', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addToWhitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'allowance(address,address)', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'allowance()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'bouncer', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimed', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'creditAvailable()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'creditAvailable(address)', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'debtOutstanding(address)', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'debtOutstanding()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'debtRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositLimit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPricePerShare', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getStrategiesLength', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getStrategyAssets', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'lastReport', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lockedProfit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'migrateStrategy', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'releaseFactor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'removeFromWhitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeStrategyFromQueue', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'report', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'revokeStrategy', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewards', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setBouncer', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDebtRatio', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setDebtRatios', values: [PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'setDepositLimit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setProfitRelease', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setRewards', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setUserAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setVaultFee', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setWithdrawalQueue', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'strategies', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'strategyDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'strategyHarvest', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'strategyHarvestTrigger', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'sweep', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'token', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalEstimatedAssets', values?: undefined): 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: 'updateStrategyMaxDebtPerHarvest', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'updateStrategyMinDebtPerHarvest', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'userAllowance', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'vaultFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'whitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawalQueue', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'BASE_ALLOWANCE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAXIMUM_STRATEGIES', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'activateAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'activation', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addStrategyToQueue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addToWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance(address,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bouncer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'creditAvailable()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'creditAvailable(address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtOutstanding(address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtOutstanding()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'debtRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositLimit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPricePerShare', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStrategiesLength', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStrategyAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastReport', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lockedProfit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'migrateStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'releaseFactor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeFromWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeStrategyFromQueue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'report', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBouncer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDebtRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDebtRatios', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDepositLimit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setProfitRelease', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setUserAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVaultFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setWithdrawalQueue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'strategies', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'strategyDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'strategyHarvest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'strategyHarvestTrigger', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sweep', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalEstimatedAssets', 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: 'updateStrategyMaxDebtPerHarvest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateStrategyMinDebtPerHarvest', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vaultFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawalQueue', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'LogAddToWhitelist(address)': EventFragment;
        'LogAllowanceStatus(bool)': EventFragment;
        'LogDebtRatios(uint256[])': EventFragment;
        'LogDeposit(address,uint256,uint256,uint256)': EventFragment;
        'LogDepositLimit(uint256)': EventFragment;
        'LogMigrate(address,address,uint256)': EventFragment;
        'LogNewAllowance(address,uint256)': EventFragment;
        'LogNewBouncer(address)': EventFragment;
        'LogNewDebtRatio(address,uint256)': EventFragment;
        'LogNewReleaseFactor(uint256)': EventFragment;
        'LogNewRewards(address)': EventFragment;
        'LogNewStrategyHarvest(bool,uint256)': EventFragment;
        'LogNewVaultFee(uint256)': EventFragment;
        'LogRemoveFromWhitelist(address)': EventFragment;
        'LogStrategyAdded(address,uint256,uint256,uint256)': EventFragment;
        'LogStrategyAddedToQueue(address)': EventFragment;
        'LogStrategyMigrated(address,address)': EventFragment;
        'LogStrategyRemovedFromQueue(address)': EventFragment;
        'LogStrategyReported(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'LogStrategyRevoked(address)': EventFragment;
        'LogStrategyStatusUpdate(address,bool)': EventFragment;
        'LogStrategyUpdateMaxDebtPerHarvest(address,uint256)': EventFragment;
        'LogStrategyUpdateMinDebtPerHarvest(address,uint256)': EventFragment;
        'LogUpdateWithdrawalQueue(address[])': EventFragment;
        'LogWithdrawal(address,uint256,uint256,uint256,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogAddToWhitelist'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogAllowanceStatus'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogDebtRatios'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogDepositLimit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogMigrate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewAllowance'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewBouncer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewDebtRatio'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewReleaseFactor'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewRewards'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewStrategyHarvest'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogNewVaultFee'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogRemoveFromWhitelist'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyAddedToQueue'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyMigrated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyRemovedFromQueue'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyReported'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyStatusUpdate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyUpdateMaxDebtPerHarvest'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogStrategyUpdateMinDebtPerHarvest'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogUpdateWithdrawalQueue'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'LogWithdrawal'): 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 LogAddToWhitelistEventObject {
    user: string;
}
export declare type LogAddToWhitelistEvent = TypedEvent<[string], LogAddToWhitelistEventObject>;
export declare type LogAddToWhitelistEventFilter = TypedEventFilter<LogAddToWhitelistEvent>;
export interface LogAllowanceStatusEventObject {
    status: boolean;
}
export declare type LogAllowanceStatusEvent = TypedEvent<[boolean], LogAllowanceStatusEventObject>;
export declare type LogAllowanceStatusEventFilter = TypedEventFilter<LogAllowanceStatusEvent>;
export interface LogDebtRatiosEventObject {
    strategyRetios: BigNumber[];
}
export declare type LogDebtRatiosEvent = TypedEvent<[BigNumber[]], LogDebtRatiosEventObject>;
export declare type LogDebtRatiosEventFilter = TypedEventFilter<LogDebtRatiosEvent>;
export interface LogDepositEventObject {
    from: string;
    _amount: BigNumber;
    shares: BigNumber;
    allowance: BigNumber;
}
export declare type LogDepositEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber], LogDepositEventObject>;
export declare type LogDepositEventFilter = TypedEventFilter<LogDepositEvent>;
export interface LogDepositLimitEventObject {
    newLimit: BigNumber;
}
export declare type LogDepositLimitEvent = TypedEvent<[BigNumber], LogDepositLimitEventObject>;
export declare type LogDepositLimitEventFilter = TypedEventFilter<LogDepositLimitEvent>;
export interface LogMigrateEventObject {
    parent: string;
    child: string;
    amount: BigNumber;
}
export declare type LogMigrateEvent = TypedEvent<[string, string, BigNumber], LogMigrateEventObject>;
export declare type LogMigrateEventFilter = TypedEventFilter<LogMigrateEvent>;
export interface LogNewAllowanceEventObject {
    user: string;
    amount: BigNumber;
}
export declare type LogNewAllowanceEvent = TypedEvent<[string, BigNumber], LogNewAllowanceEventObject>;
export declare type LogNewAllowanceEventFilter = TypedEventFilter<LogNewAllowanceEvent>;
export interface LogNewBouncerEventObject {
    bouncer: string;
}
export declare type LogNewBouncerEvent = TypedEvent<[string], LogNewBouncerEventObject>;
export declare type LogNewBouncerEventFilter = TypedEventFilter<LogNewBouncerEvent>;
export interface LogNewDebtRatioEventObject {
    strategy: string;
    debtRatio: BigNumber;
}
export declare type LogNewDebtRatioEvent = TypedEvent<[string, BigNumber], LogNewDebtRatioEventObject>;
export declare type LogNewDebtRatioEventFilter = TypedEventFilter<LogNewDebtRatioEvent>;
export interface LogNewReleaseFactorEventObject {
    factor: BigNumber;
}
export declare type LogNewReleaseFactorEvent = TypedEvent<[BigNumber], LogNewReleaseFactorEventObject>;
export declare type LogNewReleaseFactorEventFilter = TypedEventFilter<LogNewReleaseFactorEvent>;
export interface LogNewRewardsEventObject {
    rewards: string;
}
export declare type LogNewRewardsEvent = TypedEvent<[string], LogNewRewardsEventObject>;
export declare type LogNewRewardsEventFilter = TypedEventFilter<LogNewRewardsEvent>;
export interface LogNewStrategyHarvestEventObject {
    loss: boolean;
    change: BigNumber;
}
export declare type LogNewStrategyHarvestEvent = TypedEvent<[boolean, BigNumber], LogNewStrategyHarvestEventObject>;
export declare type LogNewStrategyHarvestEventFilter = TypedEventFilter<LogNewStrategyHarvestEvent>;
export interface LogNewVaultFeeEventObject {
    vaultFee: BigNumber;
}
export declare type LogNewVaultFeeEvent = TypedEvent<[BigNumber], LogNewVaultFeeEventObject>;
export declare type LogNewVaultFeeEventFilter = TypedEventFilter<LogNewVaultFeeEvent>;
export interface LogRemoveFromWhitelistEventObject {
    user: string;
}
export declare type LogRemoveFromWhitelistEvent = TypedEvent<[string], LogRemoveFromWhitelistEventObject>;
export declare type LogRemoveFromWhitelistEventFilter = TypedEventFilter<LogRemoveFromWhitelistEvent>;
export interface LogStrategyAddedEventObject {
    strategy: string;
    debtRatio: BigNumber;
    minDebtPerHarvest: BigNumber;
    maxDebtPerHarvest: BigNumber;
}
export declare type LogStrategyAddedEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber], LogStrategyAddedEventObject>;
export declare type LogStrategyAddedEventFilter = TypedEventFilter<LogStrategyAddedEvent>;
export interface LogStrategyAddedToQueueEventObject {
    strategy: string;
}
export declare type LogStrategyAddedToQueueEvent = TypedEvent<[string], LogStrategyAddedToQueueEventObject>;
export declare type LogStrategyAddedToQueueEventFilter = TypedEventFilter<LogStrategyAddedToQueueEvent>;
export interface LogStrategyMigratedEventObject {
    newStrategy: string;
    oldStrategy: string;
}
export declare type LogStrategyMigratedEvent = TypedEvent<[string, string], LogStrategyMigratedEventObject>;
export declare type LogStrategyMigratedEventFilter = TypedEventFilter<LogStrategyMigratedEvent>;
export interface LogStrategyRemovedFromQueueEventObject {
    strategy: string;
}
export declare type LogStrategyRemovedFromQueueEvent = TypedEvent<[string], LogStrategyRemovedFromQueueEventObject>;
export declare type LogStrategyRemovedFromQueueEventFilter = TypedEventFilter<LogStrategyRemovedFromQueueEvent>;
export interface LogStrategyReportedEventObject {
    strategy: string;
    gain: BigNumber;
    loss: BigNumber;
    debtPaid: BigNumber;
    totalGain: BigNumber;
    totalLoss: BigNumber;
    totalDebt: BigNumber;
    debtAdded: BigNumber;
    debtRatio: BigNumber;
}
export declare type LogStrategyReportedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], LogStrategyReportedEventObject>;
export declare type LogStrategyReportedEventFilter = TypedEventFilter<LogStrategyReportedEvent>;
export interface LogStrategyRevokedEventObject {
    strategy: string;
}
export declare type LogStrategyRevokedEvent = TypedEvent<[string], LogStrategyRevokedEventObject>;
export declare type LogStrategyRevokedEventFilter = TypedEventFilter<LogStrategyRevokedEvent>;
export interface LogStrategyStatusUpdateEventObject {
    strategy: string;
    status: boolean;
}
export declare type LogStrategyStatusUpdateEvent = TypedEvent<[string, boolean], LogStrategyStatusUpdateEventObject>;
export declare type LogStrategyStatusUpdateEventFilter = TypedEventFilter<LogStrategyStatusUpdateEvent>;
export interface LogStrategyUpdateMaxDebtPerHarvestEventObject {
    strategy: string;
    maxDebtPerHarvest: BigNumber;
}
export declare type LogStrategyUpdateMaxDebtPerHarvestEvent = TypedEvent<[
    string,
    BigNumber
], LogStrategyUpdateMaxDebtPerHarvestEventObject>;
export declare type LogStrategyUpdateMaxDebtPerHarvestEventFilter = TypedEventFilter<LogStrategyUpdateMaxDebtPerHarvestEvent>;
export interface LogStrategyUpdateMinDebtPerHarvestEventObject {
    strategy: string;
    minDebtPerHarvest: BigNumber;
}
export declare type LogStrategyUpdateMinDebtPerHarvestEvent = TypedEvent<[
    string,
    BigNumber
], LogStrategyUpdateMinDebtPerHarvestEventObject>;
export declare type LogStrategyUpdateMinDebtPerHarvestEventFilter = TypedEventFilter<LogStrategyUpdateMinDebtPerHarvestEvent>;
export interface LogUpdateWithdrawalQueueEventObject {
    queue: string[];
}
export declare type LogUpdateWithdrawalQueueEvent = TypedEvent<[string[]], LogUpdateWithdrawalQueueEventObject>;
export declare type LogUpdateWithdrawalQueueEventFilter = TypedEventFilter<LogUpdateWithdrawalQueueEvent>;
export interface LogWithdrawalEventObject {
    from: string;
    value: BigNumber;
    shares: BigNumber;
    totalLoss: BigNumber;
    allowance: BigNumber;
}
export declare type LogWithdrawalEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], LogWithdrawalEventObject>;
export declare type LogWithdrawalEventFilter = TypedEventFilter<LogWithdrawalEvent>;
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 GroLabsVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: GroLabsVaultInterface;
    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: {
        BASE_ALLOWANCE(overrides?: CallOverrides): Promise<[BigNumber]>;
        MAXIMUM_STRATEGIES(overrides?: CallOverrides): Promise<[BigNumber]>;
        activateAllowance(_status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        activation(overrides?: CallOverrides): Promise<[BigNumber]>;
        addStrategy(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addStrategyToQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addToWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'allowance(address,address)'(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        'allowance()'(overrides?: CallOverrides): Promise<[boolean]>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        bouncer(overrides?: CallOverrides): Promise<[string]>;
        claimed(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        'creditAvailable()'(overrides?: CallOverrides): Promise<[BigNumber]>;
        'creditAvailable(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        'debtOutstanding(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        'debtOutstanding()'(overrides?: CallOverrides): Promise<[BigNumber]>;
        debtRatio(overrides?: CallOverrides): Promise<[BigNumber]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deposit(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPricePerShare(overrides?: CallOverrides): Promise<[BigNumber]>;
        getStrategiesLength(overrides?: CallOverrides): Promise<[BigNumber]>;
        getStrategyAssets(_index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            amount: BigNumber;
        }>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lastReport(overrides?: CallOverrides): Promise<[BigNumber]>;
        lockedProfit(overrides?: CallOverrides): Promise<[BigNumber]>;
        migrateStrategy(_oldVersion: PromiseOrValue<string>, _newVersion: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        releaseFactor(overrides?: CallOverrides): Promise<[BigNumber]>;
        removeFromWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeStrategyFromQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        report(_gain: PromiseOrValue<BigNumberish>, _loss: PromiseOrValue<BigNumberish>, _debtPayment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeStrategy(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rewards(overrides?: CallOverrides): Promise<[string]>;
        setBouncer(_bouncer: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDebtRatio(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDebtRatios(_strategyDebtRatios: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDepositLimit(_newLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setProfitRelease(_factor: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewards(_rewards: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setUserAllowance(_user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVaultFee(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setWithdrawalQueue(_queue: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        strategies(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            activation: BigNumber;
            active: boolean;
            debtRatio: BigNumber;
            minDebtPerHarvest: BigNumber;
            maxDebtPerHarvest: BigNumber;
            lastReport: BigNumber;
            totalDebt: BigNumber;
            totalGain: BigNumber;
            totalLoss: BigNumber;
        }>;
        strategyDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        strategyHarvest(_index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        strategyHarvestTrigger(_index: PromiseOrValue<BigNumberish>, _callCost: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        sweep(_token: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        token(overrides?: CallOverrides): Promise<[string]>;
        totalAssets(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalDebt(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalEstimatedAssets(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>;
        updateStrategyMaxDebtPerHarvest(_strategy: PromiseOrValue<string>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateStrategyMinDebtPerHarvest(_strategy: PromiseOrValue<string>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userAllowance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        vaultFee(overrides?: CallOverrides): Promise<[BigNumber]>;
        whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        withdraw(_shares: PromiseOrValue<BigNumberish>, _maxLoss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawalQueue(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
    };
    BASE_ALLOWANCE(overrides?: CallOverrides): Promise<BigNumber>;
    MAXIMUM_STRATEGIES(overrides?: CallOverrides): Promise<BigNumber>;
    activateAllowance(_status: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    activation(overrides?: CallOverrides): Promise<BigNumber>;
    addStrategy(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addStrategyToQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addToWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'allowance(address,address)'(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    'allowance()'(overrides?: CallOverrides): Promise<boolean>;
    approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    bouncer(overrides?: CallOverrides): Promise<string>;
    claimed(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    'creditAvailable()'(overrides?: CallOverrides): Promise<BigNumber>;
    'creditAvailable(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    'debtOutstanding(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    'debtOutstanding()'(overrides?: CallOverrides): Promise<BigNumber>;
    debtRatio(overrides?: CallOverrides): Promise<BigNumber>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deposit(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositLimit(overrides?: CallOverrides): Promise<BigNumber>;
    getPricePerShare(overrides?: CallOverrides): Promise<BigNumber>;
    getStrategiesLength(overrides?: CallOverrides): Promise<BigNumber>;
    getStrategyAssets(_index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lastReport(overrides?: CallOverrides): Promise<BigNumber>;
    lockedProfit(overrides?: CallOverrides): Promise<BigNumber>;
    migrateStrategy(_oldVersion: PromiseOrValue<string>, _newVersion: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    releaseFactor(overrides?: CallOverrides): Promise<BigNumber>;
    removeFromWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeStrategyFromQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    report(_gain: PromiseOrValue<BigNumberish>, _loss: PromiseOrValue<BigNumberish>, _debtPayment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeStrategy(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rewards(overrides?: CallOverrides): Promise<string>;
    setBouncer(_bouncer: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDebtRatio(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDebtRatios(_strategyDebtRatios: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDepositLimit(_newLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setProfitRelease(_factor: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewards(_rewards: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setUserAllowance(_user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVaultFee(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setWithdrawalQueue(_queue: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    strategies(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        boolean,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        activation: BigNumber;
        active: boolean;
        debtRatio: BigNumber;
        minDebtPerHarvest: BigNumber;
        maxDebtPerHarvest: BigNumber;
        lastReport: BigNumber;
        totalDebt: BigNumber;
        totalGain: BigNumber;
        totalLoss: BigNumber;
    }>;
    strategyDebt(overrides?: CallOverrides): Promise<BigNumber>;
    strategyHarvest(_index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    strategyHarvestTrigger(_index: PromiseOrValue<BigNumberish>, _callCost: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    sweep(_token: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    symbol(overrides?: CallOverrides): Promise<string>;
    token(overrides?: CallOverrides): Promise<string>;
    totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
    totalDebt(overrides?: CallOverrides): Promise<BigNumber>;
    totalEstimatedAssets(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>;
    updateStrategyMaxDebtPerHarvest(_strategy: PromiseOrValue<string>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateStrategyMinDebtPerHarvest(_strategy: PromiseOrValue<string>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userAllowance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    vaultFee(overrides?: CallOverrides): Promise<BigNumber>;
    whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    withdraw(_shares: PromiseOrValue<BigNumberish>, _maxLoss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawalQueue(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    callStatic: {
        BASE_ALLOWANCE(overrides?: CallOverrides): Promise<BigNumber>;
        MAXIMUM_STRATEGIES(overrides?: CallOverrides): Promise<BigNumber>;
        activateAllowance(_status: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        activation(overrides?: CallOverrides): Promise<BigNumber>;
        addStrategy(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        addStrategyToQueue(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        addToWhitelist(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        'allowance(address,address)'(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'allowance()'(overrides?: CallOverrides): Promise<boolean>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        bouncer(overrides?: CallOverrides): Promise<string>;
        claimed(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        'creditAvailable()'(overrides?: CallOverrides): Promise<BigNumber>;
        'creditAvailable(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'debtOutstanding(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'debtOutstanding()'(overrides?: CallOverrides): Promise<BigNumber>;
        debtRatio(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        deposit(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        depositLimit(overrides?: CallOverrides): Promise<BigNumber>;
        getPricePerShare(overrides?: CallOverrides): Promise<BigNumber>;
        getStrategiesLength(overrides?: CallOverrides): Promise<BigNumber>;
        getStrategyAssets(_index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        lastReport(overrides?: CallOverrides): Promise<BigNumber>;
        lockedProfit(overrides?: CallOverrides): Promise<BigNumber>;
        migrateStrategy(_oldVersion: PromiseOrValue<string>, _newVersion: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        releaseFactor(overrides?: CallOverrides): Promise<BigNumber>;
        removeFromWhitelist(user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeStrategyFromQueue(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        report(_gain: PromiseOrValue<BigNumberish>, _loss: PromiseOrValue<BigNumberish>, _debtPayment: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        revokeStrategy(overrides?: CallOverrides): Promise<void>;
        rewards(overrides?: CallOverrides): Promise<string>;
        setBouncer(_bouncer: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDebtRatio(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setDebtRatios(_strategyDebtRatios: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        setDepositLimit(_newLimit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setProfitRelease(_factor: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setRewards(_rewards: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setUserAllowance(_user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setVaultFee(_fee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setWithdrawalQueue(_queue: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        strategies(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            activation: BigNumber;
            active: boolean;
            debtRatio: BigNumber;
            minDebtPerHarvest: BigNumber;
            maxDebtPerHarvest: BigNumber;
            lastReport: BigNumber;
            totalDebt: BigNumber;
            totalGain: BigNumber;
            totalLoss: BigNumber;
        }>;
        strategyDebt(overrides?: CallOverrides): Promise<BigNumber>;
        strategyHarvest(_index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        strategyHarvestTrigger(_index: PromiseOrValue<BigNumberish>, _callCost: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        sweep(_token: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        symbol(overrides?: CallOverrides): Promise<string>;
        token(overrides?: CallOverrides): Promise<string>;
        totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        totalDebt(overrides?: CallOverrides): Promise<BigNumber>;
        totalEstimatedAssets(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>;
        updateStrategyMaxDebtPerHarvest(_strategy: PromiseOrValue<string>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateStrategyMinDebtPerHarvest(_strategy: PromiseOrValue<string>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        userAllowance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        vaultFee(overrides?: CallOverrides): Promise<BigNumber>;
        whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        withdraw(_shares: PromiseOrValue<BigNumberish>, _maxLoss: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawalQueue(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    };
    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;
        'LogAddToWhitelist(address)'(user?: PromiseOrValue<string> | null): LogAddToWhitelistEventFilter;
        LogAddToWhitelist(user?: PromiseOrValue<string> | null): LogAddToWhitelistEventFilter;
        'LogAllowanceStatus(bool)'(status?: null): LogAllowanceStatusEventFilter;
        LogAllowanceStatus(status?: null): LogAllowanceStatusEventFilter;
        'LogDebtRatios(uint256[])'(strategyRetios?: null): LogDebtRatiosEventFilter;
        LogDebtRatios(strategyRetios?: null): LogDebtRatiosEventFilter;
        'LogDeposit(address,uint256,uint256,uint256)'(from?: PromiseOrValue<string> | null, _amount?: null, shares?: null, allowance?: null): LogDepositEventFilter;
        LogDeposit(from?: PromiseOrValue<string> | null, _amount?: null, shares?: null, allowance?: null): LogDepositEventFilter;
        'LogDepositLimit(uint256)'(newLimit?: null): LogDepositLimitEventFilter;
        LogDepositLimit(newLimit?: null): LogDepositLimitEventFilter;
        'LogMigrate(address,address,uint256)'(parent?: null, child?: null, amount?: null): LogMigrateEventFilter;
        LogMigrate(parent?: null, child?: null, amount?: null): LogMigrateEventFilter;
        'LogNewAllowance(address,uint256)'(user?: null, amount?: null): LogNewAllowanceEventFilter;
        LogNewAllowance(user?: null, amount?: null): LogNewAllowanceEventFilter;
        'LogNewBouncer(address)'(bouncer?: null): LogNewBouncerEventFilter;
        LogNewBouncer(bouncer?: null): LogNewBouncerEventFilter;
        'LogNewDebtRatio(address,uint256)'(strategy?: PromiseOrValue<string> | null, debtRatio?: null): LogNewDebtRatioEventFilter;
        LogNewDebtRatio(strategy?: PromiseOrValue<string> | null, debtRatio?: null): LogNewDebtRatioEventFilter;
        'LogNewReleaseFactor(uint256)'(factor?: null): LogNewReleaseFactorEventFilter;
        LogNewReleaseFactor(factor?: null): LogNewReleaseFactorEventFilter;
        'LogNewRewards(address)'(rewards?: null): LogNewRewardsEventFilter;
        LogNewRewards(rewards?: null): LogNewRewardsEventFilter;
        'LogNewStrategyHarvest(bool,uint256)'(loss?: null, change?: null): LogNewStrategyHarvestEventFilter;
        LogNewStrategyHarvest(loss?: null, change?: null): LogNewStrategyHarvestEventFilter;
        'LogNewVaultFee(uint256)'(vaultFee?: null): LogNewVaultFeeEventFilter;
        LogNewVaultFee(vaultFee?: null): LogNewVaultFeeEventFilter;
        'LogRemoveFromWhitelist(address)'(user?: PromiseOrValue<string> | null): LogRemoveFromWhitelistEventFilter;
        LogRemoveFromWhitelist(user?: PromiseOrValue<string> | null): LogRemoveFromWhitelistEventFilter;
        'LogStrategyAdded(address,uint256,uint256,uint256)'(strategy?: PromiseOrValue<string> | null, debtRatio?: null, minDebtPerHarvest?: null, maxDebtPerHarvest?: null): LogStrategyAddedEventFilter;
        LogStrategyAdded(strategy?: PromiseOrValue<string> | null, debtRatio?: null, minDebtPerHarvest?: null, maxDebtPerHarvest?: null): LogStrategyAddedEventFilter;
        'LogStrategyAddedToQueue(address)'(strategy?: PromiseOrValue<string> | null): LogStrategyAddedToQueueEventFilter;
        LogStrategyAddedToQueue(strategy?: PromiseOrValue<string> | null): LogStrategyAddedToQueueEventFilter;
        'LogStrategyMigrated(address,address)'(newStrategy?: PromiseOrValue<string> | null, oldStrategy?: PromiseOrValue<string> | null): LogStrategyMigratedEventFilter;
        LogStrategyMigrated(newStrategy?: PromiseOrValue<string> | null, oldStrategy?: PromiseOrValue<string> | null): LogStrategyMigratedEventFilter;
        'LogStrategyRemovedFromQueue(address)'(strategy?: PromiseOrValue<string> | null): LogStrategyRemovedFromQueueEventFilter;
        LogStrategyRemovedFromQueue(strategy?: PromiseOrValue<string> | null): LogStrategyRemovedFromQueueEventFilter;
        'LogStrategyReported(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)'(strategy?: PromiseOrValue<string> | null, gain?: null, loss?: null, debtPaid?: null, totalGain?: null, totalLoss?: null, totalDebt?: null, debtAdded?: null, debtRatio?: null): LogStrategyReportedEventFilter;
        LogStrategyReported(strategy?: PromiseOrValue<string> | null, gain?: null, loss?: null, debtPaid?: null, totalGain?: null, totalLoss?: null, totalDebt?: null, debtAdded?: null, debtRatio?: null): LogStrategyReportedEventFilter;
        'LogStrategyRevoked(address)'(strategy?: PromiseOrValue<string> | null): LogStrategyRevokedEventFilter;
        LogStrategyRevoked(strategy?: PromiseOrValue<string> | null): LogStrategyRevokedEventFilter;
        'LogStrategyStatusUpdate(address,bool)'(strategy?: PromiseOrValue<string> | null, status?: null): LogStrategyStatusUpdateEventFilter;
        LogStrategyStatusUpdate(strategy?: PromiseOrValue<string> | null, status?: null): LogStrategyStatusUpdateEventFilter;
        'LogStrategyUpdateMaxDebtPerHarvest(address,uint256)'(strategy?: PromiseOrValue<string> | null, maxDebtPerHarvest?: null): LogStrategyUpdateMaxDebtPerHarvestEventFilter;
        LogStrategyUpdateMaxDebtPerHarvest(strategy?: PromiseOrValue<string> | null, maxDebtPerHarvest?: null): LogStrategyUpdateMaxDebtPerHarvestEventFilter;
        'LogStrategyUpdateMinDebtPerHarvest(address,uint256)'(strategy?: PromiseOrValue<string> | null, minDebtPerHarvest?: null): LogStrategyUpdateMinDebtPerHarvestEventFilter;
        LogStrategyUpdateMinDebtPerHarvest(strategy?: PromiseOrValue<string> | null, minDebtPerHarvest?: null): LogStrategyUpdateMinDebtPerHarvestEventFilter;
        'LogUpdateWithdrawalQueue(address[])'(queue?: null): LogUpdateWithdrawalQueueEventFilter;
        LogUpdateWithdrawalQueue(queue?: null): LogUpdateWithdrawalQueueEventFilter;
        'LogWithdrawal(address,uint256,uint256,uint256,uint256)'(from?: PromiseOrValue<string> | null, value?: null, shares?: null, totalLoss?: null, allowance?: null): LogWithdrawalEventFilter;
        LogWithdrawal(from?: PromiseOrValue<string> | null, value?: null, shares?: null, totalLoss?: null, allowance?: null): LogWithdrawalEventFilter;
        '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: {
        BASE_ALLOWANCE(overrides?: CallOverrides): Promise<BigNumber>;
        MAXIMUM_STRATEGIES(overrides?: CallOverrides): Promise<BigNumber>;
        activateAllowance(_status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        activation(overrides?: CallOverrides): Promise<BigNumber>;
        addStrategy(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addStrategyToQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addToWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'allowance(address,address)'(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'allowance()'(overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        bouncer(overrides?: CallOverrides): Promise<BigNumber>;
        claimed(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'creditAvailable()'(overrides?: CallOverrides): Promise<BigNumber>;
        'creditAvailable(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'debtOutstanding(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'debtOutstanding()'(overrides?: CallOverrides): Promise<BigNumber>;
        debtRatio(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deposit(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositLimit(overrides?: CallOverrides): Promise<BigNumber>;
        getPricePerShare(overrides?: CallOverrides): Promise<BigNumber>;
        getStrategiesLength(overrides?: CallOverrides): Promise<BigNumber>;
        getStrategyAssets(_index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lastReport(overrides?: CallOverrides): Promise<BigNumber>;
        lockedProfit(overrides?: CallOverrides): Promise<BigNumber>;
        migrateStrategy(_oldVersion: PromiseOrValue<string>, _newVersion: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        releaseFactor(overrides?: CallOverrides): Promise<BigNumber>;
        removeFromWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeStrategyFromQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        report(_gain: PromiseOrValue<BigNumberish>, _loss: PromiseOrValue<BigNumberish>, _debtPayment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeStrategy(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rewards(overrides?: CallOverrides): Promise<BigNumber>;
        setBouncer(_bouncer: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDebtRatio(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDebtRatios(_strategyDebtRatios: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDepositLimit(_newLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setProfitRelease(_factor: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewards(_rewards: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setUserAllowance(_user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVaultFee(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setWithdrawalQueue(_queue: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        strategies(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        strategyDebt(overrides?: CallOverrides): Promise<BigNumber>;
        strategyHarvest(_index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        strategyHarvestTrigger(_index: PromiseOrValue<BigNumberish>, _callCost: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        sweep(_token: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        token(overrides?: CallOverrides): Promise<BigNumber>;
        totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        totalDebt(overrides?: CallOverrides): Promise<BigNumber>;
        totalEstimatedAssets(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>;
        updateStrategyMaxDebtPerHarvest(_strategy: PromiseOrValue<string>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateStrategyMinDebtPerHarvest(_strategy: PromiseOrValue<string>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userAllowance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        vaultFee(overrides?: CallOverrides): Promise<BigNumber>;
        whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_shares: PromiseOrValue<BigNumberish>, _maxLoss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawalQueue(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        BASE_ALLOWANCE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MAXIMUM_STRATEGIES(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activateAllowance(_status: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        activation(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addStrategy(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addStrategyToQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addToWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'allowance(address,address)'(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'allowance()'(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        bouncer(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimed(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'creditAvailable()'(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'creditAvailable(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'debtOutstanding(address)'(_strategy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'debtOutstanding()'(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        debtRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deposit(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPricePerShare(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStrategiesLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStrategyAssets(_index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lastReport(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockedProfit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        migrateStrategy(_oldVersion: PromiseOrValue<string>, _newVersion: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        releaseFactor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeFromWhitelist(user: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeStrategyFromQueue(_strategy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        report(_gain: PromiseOrValue<BigNumberish>, _loss: PromiseOrValue<BigNumberish>, _debtPayment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeStrategy(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rewards(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setBouncer(_bouncer: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDebtRatio(_strategy: PromiseOrValue<string>, _debtRatio: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDebtRatios(_strategyDebtRatios: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDepositLimit(_newLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setProfitRelease(_factor: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewards(_rewards: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setUserAllowance(_user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVaultFee(_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setWithdrawalQueue(_queue: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        strategies(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        strategyDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        strategyHarvest(_index: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        strategyHarvestTrigger(_index: PromiseOrValue<BigNumberish>, _callCost: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        sweep(_token: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        token(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalEstimatedAssets(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>;
        updateStrategyMaxDebtPerHarvest(_strategy: PromiseOrValue<string>, _maxDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateStrategyMinDebtPerHarvest(_strategy: PromiseOrValue<string>, _minDebtPerHarvest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userAllowance(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vaultFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(_shares: PromiseOrValue<BigNumberish>, _maxLoss: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawalQueue(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
