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 declare namespace I1inchAggregationRouterV4 {
    type SwapDescriptionStruct = {
        srcToken: PromiseOrValue<string>;
        dstToken: PromiseOrValue<string>;
        srcReceiver: PromiseOrValue<string>;
        dstReceiver: PromiseOrValue<string>;
        amount: PromiseOrValue<BigNumberish>;
        minReturnAmount: PromiseOrValue<BigNumberish>;
        flags: PromiseOrValue<BigNumberish>;
        permit: PromiseOrValue<BytesLike>;
    };
    type SwapDescriptionStructOutput = [
        string,
        string,
        string,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        string
    ] & {
        srcToken: string;
        dstToken: string;
        srcReceiver: string;
        dstReceiver: string;
        amount: BigNumber;
        minReturnAmount: BigNumber;
        flags: BigNumber;
        permit: string;
    };
}
export declare namespace OneInchZapLib {
    type SwapParamsStruct = {
        caller: PromiseOrValue<string>;
        desc: I1inchAggregationRouterV4.SwapDescriptionStruct;
        data: PromiseOrValue<BytesLike>;
    };
    type SwapParamsStructOutput = [string, I1inchAggregationRouterV4.SwapDescriptionStructOutput, string] & {
        caller: string;
        desc: I1inchAggregationRouterV4.SwapDescriptionStructOutput;
        data: string;
    };
    type ZapInIntermediateParamsStruct = {
        swapFromIntermediate: OneInchZapLib.SwapParamsStruct;
        toPairTokens: OneInchZapLib.SwapParamsStruct;
        pairAddress: PromiseOrValue<string>;
        token0Amount: PromiseOrValue<BigNumberish>;
        token1Amount: PromiseOrValue<BigNumberish>;
        minPairTokens: PromiseOrValue<BigNumberish>;
    };
    type ZapInIntermediateParamsStructOutput = [
        OneInchZapLib.SwapParamsStructOutput,
        OneInchZapLib.SwapParamsStructOutput,
        string,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        swapFromIntermediate: OneInchZapLib.SwapParamsStructOutput;
        toPairTokens: OneInchZapLib.SwapParamsStructOutput;
        pairAddress: string;
        token0Amount: BigNumber;
        token1Amount: BigNumber;
        minPairTokens: BigNumber;
    };
    type ZapInParamsStruct = {
        toPairTokens: OneInchZapLib.SwapParamsStruct;
        pairAddress: PromiseOrValue<string>;
        token0Amount: PromiseOrValue<BigNumberish>;
        token1Amount: PromiseOrValue<BigNumberish>;
        minPairTokens: PromiseOrValue<BigNumberish>;
    };
    type ZapInParamsStructOutput = [
        OneInchZapLib.SwapParamsStructOutput,
        string,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        toPairTokens: OneInchZapLib.SwapParamsStructOutput;
        pairAddress: string;
        token0Amount: BigNumber;
        token1Amount: BigNumber;
        minPairTokens: BigNumber;
    };
}
export interface JonesMetavaultInterface extends utils.Interface {
    functions: {
        'ACCURACY()': FunctionFragment;
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'GOVERNOR()': FunctionFragment;
        'KEEPER()': FunctionFragment;
        'STRATEGY()': FunctionFragment;
        'addKeeper(address)': FunctionFragment;
        'addStrategy(address)': FunctionFragment;
        'autoCompound(((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),(address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[],((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[])': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'borrow(uint256[2])': FunctionFragment;
        'borrowed()': FunctionFragment;
        'calculateRewardsAtEndOfEpoch(address,uint256)': FunctionFragment;
        'calculateRewardsAtStartOfEpoch(address,uint256)': FunctionFragment;
        'cancelDeposit()': FunctionFragment;
        'cancelSignalExit()': FunctionFragment;
        'cap()': FunctionFragment;
        'deposit(address,uint256)': FunctionFragment;
        'depositToken()': FunctionFragment;
        'deposited(address)': FunctionFragment;
        'emergencyWithdraw()': FunctionFragment;
        'endEpoch(((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),(address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[],((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[])': FunctionFragment;
        'epoch()': FunctionFragment;
        'epochEnded()': FunctionFragment;
        'epochs(uint256)': FunctionFragment;
        'farm()': FunctionFragment;
        'feePercentage()': FunctionFragment;
        'feeReceiver()': FunctionFragment;
        'finalEpoch()': FunctionFragment;
        'flipUserInfo(address)': FunctionFragment;
        'flipVault()': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getUserStatus(address)': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'lpStorage()': FunctionFragment;
        'name()': FunctionFragment;
        'paused()': FunctionFragment;
        'removeKeeper(address)': FunctionFragment;
        'removeStrategy(address)': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'repay(uint256,address[],uint256[],(address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes)[])': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'riskPercentage()': FunctionFragment;
        'setFeePercentage(uint256)': FunctionFragment;
        'setFeeReceiver(address)': FunctionFragment;
        'setFlipVault(address)': FunctionFragment;
        'setRiskPercentage(uint256)': FunctionFragment;
        'setVaultCap(uint256)': FunctionFragment;
        'signalExit()': FunctionFragment;
        'signalFlip()': FunctionFragment;
        'startEpoch(((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),(address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[],((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[])': FunctionFragment;
        'stopVault()': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'totalDeposited()': FunctionFragment;
        'transferGovernor(address)': FunctionFragment;
        'updateFarm(address)': FunctionFragment;
        'userDepositPerEpoch(address,uint256)': FunctionFragment;
        'userEpochs(address)': FunctionFragment;
        'vaultType()': FunctionFragment;
        'withdraw()': FunctionFragment;
        'workingBalance()': FunctionFragment;
        'zapToken(((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),(address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[],((address,(address,address,address,address,uint256,uint256,uint256,bytes),bytes),address,uint256,uint256,uint256)[])': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'ACCURACY' | 'DEFAULT_ADMIN_ROLE' | 'GOVERNOR' | 'KEEPER' | 'STRATEGY' | 'addKeeper' | 'addStrategy' | 'autoCompound' | 'balanceOf' | 'borrow' | 'borrowed' | 'calculateRewardsAtEndOfEpoch' | 'calculateRewardsAtStartOfEpoch' | 'cancelDeposit' | 'cancelSignalExit' | 'cap' | 'deposit' | 'depositToken' | 'deposited' | 'emergencyWithdraw' | 'endEpoch' | 'epoch' | 'epochEnded' | 'epochs' | 'farm' | 'feePercentage' | 'feeReceiver' | 'finalEpoch' | 'flipUserInfo' | 'flipVault' | 'getRoleAdmin' | 'getUserStatus' | 'grantRole' | 'hasRole' | 'lpStorage' | 'name' | 'paused' | 'removeKeeper' | 'removeStrategy' | 'renounceRole' | 'repay' | 'revokeRole' | 'riskPercentage' | 'setFeePercentage' | 'setFeeReceiver' | 'setFlipVault' | 'setRiskPercentage' | 'setVaultCap' | 'signalExit' | 'signalFlip' | 'startEpoch' | 'stopVault' | 'supportsInterface' | 'totalDeposited' | 'transferGovernor' | 'updateFarm' | 'userDepositPerEpoch' | 'userEpochs' | 'vaultType' | 'withdraw' | 'workingBalance' | 'zapToken'): FunctionFragment;
    encodeFunctionData(functionFragment: 'ACCURACY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'GOVERNOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'KEEPER', values?: undefined): string;
    encodeFunctionData(functionFragment: 'STRATEGY', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addKeeper', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addStrategy', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'autoCompound', values: [OneInchZapLib.ZapInIntermediateParamsStruct[], OneInchZapLib.ZapInParamsStruct[]]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'borrow', values: [[PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]]): string;
    encodeFunctionData(functionFragment: 'borrowed', values?: undefined): string;
    encodeFunctionData(functionFragment: 'calculateRewardsAtEndOfEpoch', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'calculateRewardsAtStartOfEpoch', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'cancelDeposit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cancelSignalExit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cap', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposited', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'emergencyWithdraw', values?: undefined): string;
    encodeFunctionData(functionFragment: 'endEpoch', values: [OneInchZapLib.ZapInIntermediateParamsStruct[], OneInchZapLib.ZapInParamsStruct[]]): string;
    encodeFunctionData(functionFragment: 'epoch', values?: undefined): string;
    encodeFunctionData(functionFragment: 'epochEnded', values?: undefined): string;
    encodeFunctionData(functionFragment: 'epochs', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'farm', values?: undefined): string;
    encodeFunctionData(functionFragment: 'feePercentage', values?: undefined): string;
    encodeFunctionData(functionFragment: 'feeReceiver', values?: undefined): string;
    encodeFunctionData(functionFragment: 'finalEpoch', values?: undefined): string;
    encodeFunctionData(functionFragment: 'flipUserInfo', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'flipVault', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getUserStatus', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lpStorage', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'removeKeeper', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeStrategy', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'repay', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>[],
        OneInchZapLib.SwapParamsStruct[]
    ]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'riskPercentage', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setFeePercentage', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setFeeReceiver', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFlipVault', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setRiskPercentage', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setVaultCap', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'signalExit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'signalFlip', values?: undefined): string;
    encodeFunctionData(functionFragment: 'startEpoch', values: [OneInchZapLib.ZapInIntermediateParamsStruct[], OneInchZapLib.ZapInParamsStruct[]]): string;
    encodeFunctionData(functionFragment: 'stopVault', values?: undefined): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'totalDeposited', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferGovernor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'updateFarm', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'userDepositPerEpoch', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'userEpochs', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'vaultType', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values?: undefined): string;
    encodeFunctionData(functionFragment: 'workingBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'zapToken', values: [OneInchZapLib.ZapInIntermediateParamsStruct[], OneInchZapLib.ZapInParamsStruct[]]): string;
    decodeFunctionResult(functionFragment: 'ACCURACY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'GOVERNOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'KEEPER', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'STRATEGY', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addKeeper', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'autoCompound', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrowed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculateRewardsAtEndOfEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculateRewardsAtStartOfEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelSignalExit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposited', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergencyWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'endEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochEnded', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochs', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'farm', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feePercentage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeReceiver', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'finalEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'flipUserInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'flipVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserStatus', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lpStorage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeKeeper', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeStrategy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'repay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'riskPercentage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeePercentage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeReceiver', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFlipVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRiskPercentage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVaultCap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'signalExit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'signalFlip', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'startEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stopVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalDeposited', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferGovernor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateFarm', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userDepositPerEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userEpochs', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'vaultType', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'workingBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'zapToken', data: BytesLike): Result;
    events: {
        'Borrowed(address,uint256)': EventFragment;
        'CanceledDeposit(address,uint256)': EventFragment;
        'Deposited(address,address,uint256)': EventFragment;
        'EpochEnded(uint256,uint256,uint256)': EventFragment;
        'EpochStart(uint256,uint256)': EventFragment;
        'Flipped(address,address)': EventFragment;
        'Repayed(address,uint256)': EventFragment;
        'RiskPercentageUpdated(address,uint256,uint256)': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'UserCancelSignalExit(address)': EventFragment;
        'UserSignalExit(address)': EventFragment;
        'VaultPaused(address,uint256)': EventFragment;
        'Withdrew(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Borrowed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CanceledDeposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposited'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EpochEnded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EpochStart'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Flipped'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Repayed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RiskPercentageUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UserCancelSignalExit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UserSignalExit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultPaused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdrew'): EventFragment;
}
export interface BorrowedEventObject {
    _strategy: string;
    _amount: BigNumber;
}
export declare type BorrowedEvent = TypedEvent<[string, BigNumber], BorrowedEventObject>;
export declare type BorrowedEventFilter = TypedEventFilter<BorrowedEvent>;
export interface CanceledDepositEventObject {
    _user: string;
    _amount: BigNumber;
}
export declare type CanceledDepositEvent = TypedEvent<[string, BigNumber], CanceledDepositEventObject>;
export declare type CanceledDepositEventFilter = TypedEventFilter<CanceledDepositEvent>;
export interface DepositedEventObject {
    _from: string;
    _to: string;
    _amount: BigNumber;
}
export declare type DepositedEvent = TypedEvent<[string, string, BigNumber], DepositedEventObject>;
export declare type DepositedEventFilter = TypedEventFilter<DepositedEvent>;
export interface EpochEndedEventObject {
    _epoch: BigNumber;
    _endBalance: BigNumber;
    _startBalance: BigNumber;
}
export declare type EpochEndedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], EpochEndedEventObject>;
export declare type EpochEndedEventFilter = TypedEventFilter<EpochEndedEvent>;
export interface EpochStartEventObject {
    _epoch: BigNumber;
    _startBalance: BigNumber;
}
export declare type EpochStartEvent = TypedEvent<[BigNumber, BigNumber], EpochStartEventObject>;
export declare type EpochStartEventFilter = TypedEventFilter<EpochStartEvent>;
export interface FlippedEventObject {
    _user: string;
    _vault: string;
}
export declare type FlippedEvent = TypedEvent<[string, string], FlippedEventObject>;
export declare type FlippedEventFilter = TypedEventFilter<FlippedEvent>;
export interface RepayedEventObject {
    _strategy: string;
    _amount: BigNumber;
}
export declare type RepayedEvent = TypedEvent<[string, BigNumber], RepayedEventObject>;
export declare type RepayedEventFilter = TypedEventFilter<RepayedEvent>;
export interface RiskPercentageUpdatedEventObject {
    _governor: string;
    _oldRate: BigNumber;
    _newRate: BigNumber;
}
export declare type RiskPercentageUpdatedEvent = TypedEvent<[string, BigNumber, BigNumber], RiskPercentageUpdatedEventObject>;
export declare type RiskPercentageUpdatedEventFilter = TypedEventFilter<RiskPercentageUpdatedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface UserCancelSignalExitEventObject {
    _user: string;
}
export declare type UserCancelSignalExitEvent = TypedEvent<[string], UserCancelSignalExitEventObject>;
export declare type UserCancelSignalExitEventFilter = TypedEventFilter<UserCancelSignalExitEvent>;
export interface UserSignalExitEventObject {
    _user: string;
}
export declare type UserSignalExitEvent = TypedEvent<[string], UserSignalExitEventObject>;
export declare type UserSignalExitEventFilter = TypedEventFilter<UserSignalExitEvent>;
export interface VaultPausedEventObject {
    _governor: string;
    _epoch: BigNumber;
}
export declare type VaultPausedEvent = TypedEvent<[string, BigNumber], VaultPausedEventObject>;
export declare type VaultPausedEventFilter = TypedEventFilter<VaultPausedEvent>;
export interface WithdrewEventObject {
    _user: string;
    _amount: BigNumber;
}
export declare type WithdrewEvent = TypedEvent<[string, BigNumber], WithdrewEventObject>;
export declare type WithdrewEventFilter = TypedEventFilter<WithdrewEvent>;
export interface JonesMetavault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: JonesMetavaultInterface;
    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: {
        ACCURACY(overrides?: CallOverrides): Promise<[BigNumber]>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        GOVERNOR(overrides?: CallOverrides): Promise<[string]>;
        KEEPER(overrides?: CallOverrides): Promise<[string]>;
        STRATEGY(overrides?: CallOverrides): Promise<[string]>;
        addKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        autoCompound(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        borrow(_minTokenOutputs: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        borrowed(overrides?: CallOverrides): Promise<[boolean]>;
        calculateRewardsAtEndOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        calculateRewardsAtStartOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        cancelDeposit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        cancelSignalExit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        cap(overrides?: CallOverrides): Promise<[BigNumber]>;
        deposit(_user: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToken(overrides?: CallOverrides): Promise<[string]>;
        deposited(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        emergencyWithdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        endEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        epoch(overrides?: CallOverrides): Promise<[BigNumber]>;
        epochEnded(overrides?: CallOverrides): Promise<[boolean]>;
        epochs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            startAmount: BigNumber;
            endAmount: BigNumber;
        }>;
        farm(overrides?: CallOverrides): Promise<[string]>;
        feePercentage(overrides?: CallOverrides): Promise<[BigNumber]>;
        feeReceiver(overrides?: CallOverrides): Promise<[string]>;
        finalEpoch(overrides?: CallOverrides): Promise<[BigNumber]>;
        flipUserInfo(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            string
        ] & {
            userPercentage: BigNumber;
            destinationVault: string;
        }>;
        flipVault(overrides?: CallOverrides): Promise<[string]>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getUserStatus(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number]>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        lpStorage(overrides?: CallOverrides): Promise<[string]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        removeKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        repay(_minPairTokens: PromiseOrValue<BigNumberish>, _inTokens: PromiseOrValue<string>[], _inTokenAmounts: PromiseOrValue<BigNumberish>[], _swapParams: OneInchZapLib.SwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        riskPercentage(overrides?: CallOverrides): Promise<[BigNumber]>;
        setFeePercentage(_feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeReceiver(_feeReceiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFlipVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRiskPercentage(_riskPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVaultCap(_newCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        signalExit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        signalFlip(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        startEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stopVault(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        totalDeposited(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferGovernor(_newGovernor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateFarm(_farm: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userDepositPerEpoch(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        userEpochs(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            number,
            BigNumber
        ] & {
            end: BigNumber;
            deposited: BigNumber;
            status: number;
            exitPercentage: BigNumber;
        }>;
        vaultType(overrides?: CallOverrides): Promise<[number]>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        workingBalance(overrides?: CallOverrides): Promise<[BigNumber]>;
        zapToken(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    ACCURACY(overrides?: CallOverrides): Promise<BigNumber>;
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    GOVERNOR(overrides?: CallOverrides): Promise<string>;
    KEEPER(overrides?: CallOverrides): Promise<string>;
    STRATEGY(overrides?: CallOverrides): Promise<string>;
    addKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    autoCompound(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    borrow(_minTokenOutputs: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    borrowed(overrides?: CallOverrides): Promise<boolean>;
    calculateRewardsAtEndOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    calculateRewardsAtStartOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    cancelDeposit(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    cancelSignalExit(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    cap(overrides?: CallOverrides): Promise<BigNumber>;
    deposit(_user: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToken(overrides?: CallOverrides): Promise<string>;
    deposited(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    emergencyWithdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    endEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    epoch(overrides?: CallOverrides): Promise<BigNumber>;
    epochEnded(overrides?: CallOverrides): Promise<boolean>;
    epochs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        startAmount: BigNumber;
        endAmount: BigNumber;
    }>;
    farm(overrides?: CallOverrides): Promise<string>;
    feePercentage(overrides?: CallOverrides): Promise<BigNumber>;
    feeReceiver(overrides?: CallOverrides): Promise<string>;
    finalEpoch(overrides?: CallOverrides): Promise<BigNumber>;
    flipUserInfo(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        string
    ] & {
        userPercentage: BigNumber;
        destinationVault: string;
    }>;
    flipVault(overrides?: CallOverrides): Promise<string>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getUserStatus(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    lpStorage(overrides?: CallOverrides): Promise<string>;
    name(overrides?: CallOverrides): Promise<string>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    removeKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    repay(_minPairTokens: PromiseOrValue<BigNumberish>, _inTokens: PromiseOrValue<string>[], _inTokenAmounts: PromiseOrValue<BigNumberish>[], _swapParams: OneInchZapLib.SwapParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    riskPercentage(overrides?: CallOverrides): Promise<BigNumber>;
    setFeePercentage(_feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeReceiver(_feeReceiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFlipVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRiskPercentage(_riskPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVaultCap(_newCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    signalExit(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    signalFlip(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    startEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stopVault(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    totalDeposited(overrides?: CallOverrides): Promise<BigNumber>;
    transferGovernor(_newGovernor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateFarm(_farm: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userDepositPerEpoch(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    userEpochs(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        number,
        BigNumber
    ] & {
        end: BigNumber;
        deposited: BigNumber;
        status: number;
        exitPercentage: BigNumber;
    }>;
    vaultType(overrides?: CallOverrides): Promise<number>;
    withdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    workingBalance(overrides?: CallOverrides): Promise<BigNumber>;
    zapToken(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        ACCURACY(overrides?: CallOverrides): Promise<BigNumber>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        GOVERNOR(overrides?: CallOverrides): Promise<string>;
        KEEPER(overrides?: CallOverrides): Promise<string>;
        STRATEGY(overrides?: CallOverrides): Promise<string>;
        addKeeper(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        addStrategy(_strat: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        autoCompound(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        borrow(_minTokenOutputs: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<BigNumber>;
        borrowed(overrides?: CallOverrides): Promise<boolean>;
        calculateRewardsAtEndOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculateRewardsAtStartOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        cancelDeposit(overrides?: CallOverrides): Promise<void>;
        cancelSignalExit(overrides?: CallOverrides): Promise<void>;
        cap(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_user: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        depositToken(overrides?: CallOverrides): Promise<string>;
        deposited(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        emergencyWithdraw(overrides?: CallOverrides): Promise<void>;
        endEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: CallOverrides): Promise<void>;
        epoch(overrides?: CallOverrides): Promise<BigNumber>;
        epochEnded(overrides?: CallOverrides): Promise<boolean>;
        epochs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            startAmount: BigNumber;
            endAmount: BigNumber;
        }>;
        farm(overrides?: CallOverrides): Promise<string>;
        feePercentage(overrides?: CallOverrides): Promise<BigNumber>;
        feeReceiver(overrides?: CallOverrides): Promise<string>;
        finalEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        flipUserInfo(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            string
        ] & {
            userPercentage: BigNumber;
            destinationVault: string;
        }>;
        flipVault(overrides?: CallOverrides): Promise<string>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getUserStatus(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        lpStorage(overrides?: CallOverrides): Promise<string>;
        name(overrides?: CallOverrides): Promise<string>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        removeKeeper(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeStrategy(_strat: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        repay(_minPairTokens: PromiseOrValue<BigNumberish>, _inTokens: PromiseOrValue<string>[], _inTokenAmounts: PromiseOrValue<BigNumberish>[], _swapParams: OneInchZapLib.SwapParamsStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        riskPercentage(overrides?: CallOverrides): Promise<BigNumber>;
        setFeePercentage(_feePercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setFeeReceiver(_feeReceiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFlipVault(_vault: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setRiskPercentage(_riskPercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setVaultCap(_newCap: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        signalExit(overrides?: CallOverrides): Promise<void>;
        signalFlip(overrides?: CallOverrides): Promise<void>;
        startEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: CallOverrides): Promise<void>;
        stopVault(overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        totalDeposited(overrides?: CallOverrides): Promise<BigNumber>;
        transferGovernor(_newGovernor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateFarm(_farm: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        userDepositPerEpoch(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        userEpochs(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            number,
            BigNumber
        ] & {
            end: BigNumber;
            deposited: BigNumber;
            status: number;
            exitPercentage: BigNumber;
        }>;
        vaultType(overrides?: CallOverrides): Promise<number>;
        withdraw(overrides?: CallOverrides): Promise<void>;
        workingBalance(overrides?: CallOverrides): Promise<BigNumber>;
        zapToken(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'Borrowed(address,uint256)'(_strategy?: PromiseOrValue<string> | null, _amount?: null): BorrowedEventFilter;
        Borrowed(_strategy?: PromiseOrValue<string> | null, _amount?: null): BorrowedEventFilter;
        'CanceledDeposit(address,uint256)'(_user?: PromiseOrValue<string> | null, _amount?: null): CanceledDepositEventFilter;
        CanceledDeposit(_user?: PromiseOrValue<string> | null, _amount?: null): CanceledDepositEventFilter;
        'Deposited(address,address,uint256)'(_from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _amount?: null): DepositedEventFilter;
        Deposited(_from?: PromiseOrValue<string> | null, _to?: PromiseOrValue<string> | null, _amount?: null): DepositedEventFilter;
        'EpochEnded(uint256,uint256,uint256)'(_epoch?: PromiseOrValue<BigNumberish> | null, _endBalance?: null, _startBalance?: null): EpochEndedEventFilter;
        EpochEnded(_epoch?: PromiseOrValue<BigNumberish> | null, _endBalance?: null, _startBalance?: null): EpochEndedEventFilter;
        'EpochStart(uint256,uint256)'(_epoch?: PromiseOrValue<BigNumberish> | null, _startBalance?: null): EpochStartEventFilter;
        EpochStart(_epoch?: PromiseOrValue<BigNumberish> | null, _startBalance?: null): EpochStartEventFilter;
        'Flipped(address,address)'(_user?: PromiseOrValue<string> | null, _vault?: PromiseOrValue<string> | null): FlippedEventFilter;
        Flipped(_user?: PromiseOrValue<string> | null, _vault?: PromiseOrValue<string> | null): FlippedEventFilter;
        'Repayed(address,uint256)'(_strategy?: PromiseOrValue<string> | null, _amount?: null): RepayedEventFilter;
        Repayed(_strategy?: PromiseOrValue<string> | null, _amount?: null): RepayedEventFilter;
        'RiskPercentageUpdated(address,uint256,uint256)'(_governor?: PromiseOrValue<string> | null, _oldRate?: null, _newRate?: null): RiskPercentageUpdatedEventFilter;
        RiskPercentageUpdated(_governor?: PromiseOrValue<string> | null, _oldRate?: null, _newRate?: null): RiskPercentageUpdatedEventFilter;
        'RoleAdminChanged(bytes32,bytes32,bytes32)'(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'UserCancelSignalExit(address)'(_user?: PromiseOrValue<string> | null): UserCancelSignalExitEventFilter;
        UserCancelSignalExit(_user?: PromiseOrValue<string> | null): UserCancelSignalExitEventFilter;
        'UserSignalExit(address)'(_user?: PromiseOrValue<string> | null): UserSignalExitEventFilter;
        UserSignalExit(_user?: PromiseOrValue<string> | null): UserSignalExitEventFilter;
        'VaultPaused(address,uint256)'(_governor?: PromiseOrValue<string> | null, _epoch?: PromiseOrValue<BigNumberish> | null): VaultPausedEventFilter;
        VaultPaused(_governor?: PromiseOrValue<string> | null, _epoch?: PromiseOrValue<BigNumberish> | null): VaultPausedEventFilter;
        'Withdrew(address,uint256)'(_user?: PromiseOrValue<string> | null, _amount?: null): WithdrewEventFilter;
        Withdrew(_user?: PromiseOrValue<string> | null, _amount?: null): WithdrewEventFilter;
    };
    estimateGas: {
        ACCURACY(overrides?: CallOverrides): Promise<BigNumber>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR(overrides?: CallOverrides): Promise<BigNumber>;
        KEEPER(overrides?: CallOverrides): Promise<BigNumber>;
        STRATEGY(overrides?: CallOverrides): Promise<BigNumber>;
        addKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        autoCompound(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        borrow(_minTokenOutputs: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        borrowed(overrides?: CallOverrides): Promise<BigNumber>;
        calculateRewardsAtEndOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculateRewardsAtStartOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        cancelDeposit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        cancelSignalExit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        cap(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_user: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToken(overrides?: CallOverrides): Promise<BigNumber>;
        deposited(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        emergencyWithdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        endEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        epoch(overrides?: CallOverrides): Promise<BigNumber>;
        epochEnded(overrides?: CallOverrides): Promise<BigNumber>;
        epochs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        farm(overrides?: CallOverrides): Promise<BigNumber>;
        feePercentage(overrides?: CallOverrides): Promise<BigNumber>;
        feeReceiver(overrides?: CallOverrides): Promise<BigNumber>;
        finalEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        flipUserInfo(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        flipVault(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserStatus(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lpStorage(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        removeKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        repay(_minPairTokens: PromiseOrValue<BigNumberish>, _inTokens: PromiseOrValue<string>[], _inTokenAmounts: PromiseOrValue<BigNumberish>[], _swapParams: OneInchZapLib.SwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        riskPercentage(overrides?: CallOverrides): Promise<BigNumber>;
        setFeePercentage(_feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeReceiver(_feeReceiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFlipVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRiskPercentage(_riskPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVaultCap(_newCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        signalExit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        signalFlip(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        startEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stopVault(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        totalDeposited(overrides?: CallOverrides): Promise<BigNumber>;
        transferGovernor(_newGovernor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateFarm(_farm: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userDepositPerEpoch(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        userEpochs(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        vaultType(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        workingBalance(overrides?: CallOverrides): Promise<BigNumber>;
        zapToken(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        ACCURACY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        KEEPER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        STRATEGY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        autoCompound(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrow(_minTokenOutputs: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        borrowed(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateRewardsAtEndOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateRewardsAtStartOfEpoch(_user: PromiseOrValue<string>, _epoch: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cancelDeposit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        cancelSignalExit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        cap(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(_user: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposited(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        emergencyWithdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        endEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        epoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochEnded(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochs(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        farm(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feePercentage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feeReceiver(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        finalEpoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        flipUserInfo(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        flipVault(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserStatus(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lpStorage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeStrategy(_strat: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        repay(_minPairTokens: PromiseOrValue<BigNumberish>, _inTokens: PromiseOrValue<string>[], _inTokenAmounts: PromiseOrValue<BigNumberish>[], _swapParams: OneInchZapLib.SwapParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        riskPercentage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setFeePercentage(_feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeReceiver(_feeReceiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFlipVault(_vault: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRiskPercentage(_riskPercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVaultCap(_newCap: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        signalExit(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        signalFlip(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        startEpoch(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stopVault(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalDeposited(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferGovernor(_newGovernor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateFarm(_farm: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userDepositPerEpoch(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        userEpochs(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        vaultType(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        workingBalance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        zapToken(_intermediateZapSwaps: OneInchZapLib.ZapInIntermediateParamsStruct[], _directZapSwaps: OneInchZapLib.ZapInParamsStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
