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 IHighTableVault {
    type FeeConfigStruct = {
        platformVault: PromiseOrValue<string>;
        managerVault: PromiseOrValue<string>;
        platformEntryFee: PromiseOrValue<BigNumberish>;
        managerEntryFee: PromiseOrValue<BigNumberish>;
        platformExitFee: PromiseOrValue<BigNumberish>;
        managerExitFee: PromiseOrValue<BigNumberish>;
        platformPerformanceFee: PromiseOrValue<BigNumberish>;
        managerPerformanceFee: PromiseOrValue<BigNumberish>;
        platformManagementFee: PromiseOrValue<BigNumberish>;
        managerManagementFee: PromiseOrValue<BigNumberish>;
    };
    type FeeConfigStructOutput = [
        string,
        string,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number
    ] & {
        platformVault: string;
        managerVault: string;
        platformEntryFee: number;
        managerEntryFee: number;
        platformExitFee: number;
        managerExitFee: number;
        platformPerformanceFee: number;
        managerPerformanceFee: number;
        platformManagementFee: number;
        managerManagementFee: number;
    };
}
export interface TeahouseVaultInterface extends utils.Interface {
    functions: {
        'AUDITOR_ROLE()': FunctionFragment;
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'SECONDS_IN_A_YEAR()': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'asset()': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'cancelDeposit(uint256,address)': FunctionFragment;
        'cancelWithdraw(uint256,address)': FunctionFragment;
        'claimAndRequestDeposit(uint256,address)': FunctionFragment;
        'claimAndRequestWithdraw(uint256,address)': FunctionFragment;
        'claimOwedAssets(address)': FunctionFragment;
        'claimOwedFunds(address)': FunctionFragment;
        'claimOwedShares(address)': FunctionFragment;
        'closePosition(uint256,address)': FunctionFragment;
        'closePositionAndClaim(address)': FunctionFragment;
        'closePrice()': FunctionFragment;
        'cycleState(uint32)': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'depositToVault(uint256)': FunctionFragment;
        'enterNextCycle(uint32,uint128,uint128,uint128,uint64,uint64,bool)': FunctionFragment;
        'feeConfig()': FunctionFragment;
        'fundConfig()': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'globalState()': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'initialPrice()': FunctionFragment;
        'name()': FunctionFragment;
        'nftEnabled(uint256)': FunctionFragment;
        'previewNextCycle(uint128,uint64)': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'requestDeposit(uint256,address)': FunctionFragment;
        'requestWithdraw(uint256,address)': FunctionFragment;
        'requestedFunds(address)': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'setDepositLimit(uint128)': FunctionFragment;
        'setDisableFunding(bool,bool,bool,bool)': FunctionFragment;
        'setDisableNFTChecks(bool)': FunctionFragment;
        'setEnabledNFTs(address[])': FunctionFragment;
        'setFeeConfig((address,address,uint24,uint24,uint24,uint24,uint24,uint24,uint24,uint24))': FunctionFragment;
        'setFundLockingTimestamp(uint64)': FunctionFragment;
        'setTeaVaultV2(address)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'userState(address)': FunctionFragment;
        'withdrawFromVault(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'AUDITOR_ROLE' | 'DEFAULT_ADMIN_ROLE' | 'SECONDS_IN_A_YEAR' | 'allowance' | 'approve' | 'asset' | 'balanceOf' | 'cancelDeposit' | 'cancelWithdraw' | 'claimAndRequestDeposit' | 'claimAndRequestWithdraw' | 'claimOwedAssets' | 'claimOwedFunds' | 'claimOwedShares' | 'closePosition' | 'closePositionAndClaim' | 'closePrice' | 'cycleState' | 'decimals' | 'decreaseAllowance' | 'depositToVault' | 'enterNextCycle' | 'feeConfig' | 'fundConfig' | 'getRoleAdmin' | 'globalState' | 'grantRole' | 'hasRole' | 'increaseAllowance' | 'initialPrice' | 'name' | 'nftEnabled' | 'previewNextCycle' | 'renounceRole' | 'requestDeposit' | 'requestWithdraw' | 'requestedFunds' | 'revokeRole' | 'setDepositLimit' | 'setDisableFunding' | 'setDisableNFTChecks' | 'setEnabledNFTs' | 'setFeeConfig' | 'setFundLockingTimestamp' | 'setTeaVaultV2' | 'supportsInterface' | 'symbol' | 'totalSupply' | 'transfer' | 'transferFrom' | 'userState' | 'withdrawFromVault'): FunctionFragment;
    encodeFunctionData(functionFragment: 'AUDITOR_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SECONDS_IN_A_YEAR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'asset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'cancelDeposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'cancelWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimAndRequestDeposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimAndRequestWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimOwedAssets', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimOwedFunds', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'claimOwedShares', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'closePosition', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'closePositionAndClaim', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'closePrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cycleState', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositToVault', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'enterNextCycle', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'feeConfig', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fundConfig', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'globalState', values?: undefined): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nftEnabled', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'previewNextCycle', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestDeposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'requestedFunds', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDepositLimit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setDisableFunding', values: [PromiseOrValue<boolean>, PromiseOrValue<boolean>, PromiseOrValue<boolean>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setDisableNFTChecks', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setEnabledNFTs', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'setFeeConfig', values: [IHighTableVault.FeeConfigStruct]): string;
    encodeFunctionData(functionFragment: 'setFundLockingTimestamp', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setTeaVaultV2', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', 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: 'userState', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdrawFromVault', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'AUDITOR_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SECONDS_IN_A_YEAR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'asset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimAndRequestDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimAndRequestWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOwedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOwedFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOwedShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'closePosition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'closePositionAndClaim', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'closePrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cycleState', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositToVault', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'enterNextCycle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'globalState', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nftEnabled', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewNextCycle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'requestedFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDepositLimit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDisableFunding', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDisableNFTChecks', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEnabledNFTs', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFundLockingTimestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTeaVaultV2', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'userState', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFromVault', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'ClaimOwedAssets(address,address,uint256)': EventFragment;
        'ClaimOwedShares(address,address,uint256)': EventFragment;
        'ConvertToAssets(address,uint32,uint256,uint256)': EventFragment;
        'ConvertToShares(address,uint32,uint256,uint256)': EventFragment;
        'DepositCanceled(address,uint32,address,uint256)': EventFragment;
        'DepositLimitUpdated(address,uint32,uint256)': EventFragment;
        'DepositRequested(address,uint32,address,uint256)': EventFragment;
        'DepositToVault(address,uint32,address,uint256)': EventFragment;
        'DisableNFTChecks(address,uint32,bool)': EventFragment;
        'EnterNextCycle(address,uint32,uint256,uint256,uint256,uint256,uint64,uint64,bool,uint256,uint256)': EventFragment;
        'FeeConfigChanged(address,uint32,tuple)': EventFragment;
        'FundInitialized(address,uint256,uint256,uint64,address)': EventFragment;
        'FundLockingTimestampUpdated(address,uint32,uint64)': EventFragment;
        'FundingChanged(address,uint32,bool,bool,bool,bool)': EventFragment;
        'NFTEnabled(address,uint32,address[])': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'UpdateTeaVaultV2(address,uint32,address)': EventFragment;
        'WithdrawFromVault(address,uint32,address,uint256)': EventFragment;
        'WithdrawalCanceled(address,uint32,address,uint256)': EventFragment;
        'WithdrawalRequested(address,uint32,address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ClaimOwedAssets'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ClaimOwedShares'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ConvertToAssets'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ConvertToShares'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositCanceled'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositLimitUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositRequested'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositToVault'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DisableNFTChecks'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EnterNextCycle'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeConfigChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundInitialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundLockingTimestampUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundingChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NFTEnabled'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateTeaVaultV2'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawFromVault'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalCanceled'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalRequested'): 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 ClaimOwedAssetsEventObject {
    caller: string;
    receiver: string;
    assets: BigNumber;
}
export declare type ClaimOwedAssetsEvent = TypedEvent<[string, string, BigNumber], ClaimOwedAssetsEventObject>;
export declare type ClaimOwedAssetsEventFilter = TypedEventFilter<ClaimOwedAssetsEvent>;
export interface ClaimOwedSharesEventObject {
    caller: string;
    receiver: string;
    shares: BigNumber;
}
export declare type ClaimOwedSharesEvent = TypedEvent<[string, string, BigNumber], ClaimOwedSharesEventObject>;
export declare type ClaimOwedSharesEventFilter = TypedEventFilter<ClaimOwedSharesEvent>;
export interface ConvertToAssetsEventObject {
    owner: string;
    cycleIndex: number;
    shares: BigNumber;
    assets: BigNumber;
}
export declare type ConvertToAssetsEvent = TypedEvent<[string, number, BigNumber, BigNumber], ConvertToAssetsEventObject>;
export declare type ConvertToAssetsEventFilter = TypedEventFilter<ConvertToAssetsEvent>;
export interface ConvertToSharesEventObject {
    owner: string;
    cycleIndex: number;
    assets: BigNumber;
    shares: BigNumber;
}
export declare type ConvertToSharesEvent = TypedEvent<[string, number, BigNumber, BigNumber], ConvertToSharesEventObject>;
export declare type ConvertToSharesEventFilter = TypedEventFilter<ConvertToSharesEvent>;
export interface DepositCanceledEventObject {
    caller: string;
    cycleIndex: number;
    receiver: string;
    assets: BigNumber;
}
export declare type DepositCanceledEvent = TypedEvent<[string, number, string, BigNumber], DepositCanceledEventObject>;
export declare type DepositCanceledEventFilter = TypedEventFilter<DepositCanceledEvent>;
export interface DepositLimitUpdatedEventObject {
    caller: string;
    cycleIndex: number;
    depositLimit: BigNumber;
}
export declare type DepositLimitUpdatedEvent = TypedEvent<[string, number, BigNumber], DepositLimitUpdatedEventObject>;
export declare type DepositLimitUpdatedEventFilter = TypedEventFilter<DepositLimitUpdatedEvent>;
export interface DepositRequestedEventObject {
    caller: string;
    cycleIndex: number;
    receiver: string;
    assets: BigNumber;
}
export declare type DepositRequestedEvent = TypedEvent<[string, number, string, BigNumber], DepositRequestedEventObject>;
export declare type DepositRequestedEventFilter = TypedEventFilter<DepositRequestedEvent>;
export interface DepositToVaultEventObject {
    caller: string;
    cycleIndex: number;
    teaVaultV2: string;
    value: BigNumber;
}
export declare type DepositToVaultEvent = TypedEvent<[string, number, string, BigNumber], DepositToVaultEventObject>;
export declare type DepositToVaultEventFilter = TypedEventFilter<DepositToVaultEvent>;
export interface DisableNFTChecksEventObject {
    caller: string;
    cycleIndex: number;
    disableChecks: boolean;
}
export declare type DisableNFTChecksEvent = TypedEvent<[string, number, boolean], DisableNFTChecksEventObject>;
export declare type DisableNFTChecksEventFilter = TypedEventFilter<DisableNFTChecksEvent>;
export interface EnterNextCycleEventObject {
    caller: string;
    cycleIndex: number;
    fundValue: BigNumber;
    priceNumerator: BigNumber;
    priceDenominator: BigNumber;
    depositLimit: BigNumber;
    startTimestamp: BigNumber;
    lockTimestamp: BigNumber;
    fundClosed: boolean;
    platformFee: BigNumber;
    managerFee: BigNumber;
}
export declare type EnterNextCycleEvent = TypedEvent<[
    string,
    number,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    boolean,
    BigNumber,
    BigNumber
], EnterNextCycleEventObject>;
export declare type EnterNextCycleEventFilter = TypedEventFilter<EnterNextCycleEvent>;
export interface FeeConfigChangedEventObject {
    caller: string;
    cycleIndex: number;
    feeConfig: IHighTableVault.FeeConfigStructOutput;
}
export declare type FeeConfigChangedEvent = TypedEvent<[
    string,
    number,
    IHighTableVault.FeeConfigStructOutput
], FeeConfigChangedEventObject>;
export declare type FeeConfigChangedEventFilter = TypedEventFilter<FeeConfigChangedEvent>;
export interface FundInitializedEventObject {
    caller: string;
    priceNumerator: BigNumber;
    priceDenominator: BigNumber;
    startTimestamp: BigNumber;
    admin: string;
}
export declare type FundInitializedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    string
], FundInitializedEventObject>;
export declare type FundInitializedEventFilter = TypedEventFilter<FundInitializedEvent>;
export interface FundLockingTimestampUpdatedEventObject {
    caller: string;
    cycleIndex: number;
    lockTimestamp: BigNumber;
}
export declare type FundLockingTimestampUpdatedEvent = TypedEvent<[
    string,
    number,
    BigNumber
], FundLockingTimestampUpdatedEventObject>;
export declare type FundLockingTimestampUpdatedEventFilter = TypedEventFilter<FundLockingTimestampUpdatedEvent>;
export interface FundingChangedEventObject {
    caller: string;
    cycleIndex: number;
    disableDepositing: boolean;
    disableWithdrawing: boolean;
    disableCancelDepositing: boolean;
    disableCancelWithdrawing: boolean;
}
export declare type FundingChangedEvent = TypedEvent<[
    string,
    number,
    boolean,
    boolean,
    boolean,
    boolean
], FundingChangedEventObject>;
export declare type FundingChangedEventFilter = TypedEventFilter<FundingChangedEvent>;
export interface NFTEnabledEventObject {
    caller: string;
    cycleIndex: number;
    nfts: string[];
}
export declare type NFTEnabledEvent = TypedEvent<[string, number, string[]], NFTEnabledEventObject>;
export declare type NFTEnabledEventFilter = TypedEventFilter<NFTEnabledEvent>;
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 TransferEventObject {
    from: string;
    to: string;
    value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface UpdateTeaVaultV2EventObject {
    caller: string;
    cycleIndex: number;
    teaVaultV2: string;
}
export declare type UpdateTeaVaultV2Event = TypedEvent<[string, number, string], UpdateTeaVaultV2EventObject>;
export declare type UpdateTeaVaultV2EventFilter = TypedEventFilter<UpdateTeaVaultV2Event>;
export interface WithdrawFromVaultEventObject {
    caller: string;
    cycleIndex: number;
    teaVaultV2: string;
    value: BigNumber;
}
export declare type WithdrawFromVaultEvent = TypedEvent<[string, number, string, BigNumber], WithdrawFromVaultEventObject>;
export declare type WithdrawFromVaultEventFilter = TypedEventFilter<WithdrawFromVaultEvent>;
export interface WithdrawalCanceledEventObject {
    caller: string;
    cycleIndex: number;
    receiver: string;
    shares: BigNumber;
}
export declare type WithdrawalCanceledEvent = TypedEvent<[string, number, string, BigNumber], WithdrawalCanceledEventObject>;
export declare type WithdrawalCanceledEventFilter = TypedEventFilter<WithdrawalCanceledEvent>;
export interface WithdrawalRequestedEventObject {
    caller: string;
    cycleIndex: number;
    owner: string;
    shares: BigNumber;
}
export declare type WithdrawalRequestedEvent = TypedEvent<[string, number, string, BigNumber], WithdrawalRequestedEventObject>;
export declare type WithdrawalRequestedEventFilter = TypedEventFilter<WithdrawalRequestedEvent>;
export interface TeahouseVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: TeahouseVaultInterface;
    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: {
        AUDITOR_ROLE(overrides?: CallOverrides): Promise<[string]>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        SECONDS_IN_A_YEAR(overrides?: CallOverrides): Promise<[BigNumber]>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        asset(overrides?: CallOverrides): Promise<[string] & {
            assetTokenAddress: string;
        }>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        cancelDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        cancelWithdraw(_shares: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAndRequestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAndRequestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOwedAssets(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOwedFunds(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOwedShares(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closePosition(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closePositionAndClaim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closePrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            numerator: BigNumber;
            denominator: BigNumber;
        }>;
        cycleState(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            totalFundValue: BigNumber;
            fundValueAfterRequests: BigNumber;
            requestedDeposits: BigNumber;
            convertedDeposits: BigNumber;
            requestedWithdrawals: BigNumber;
            convertedWithdrawals: BigNumber;
        }>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositToVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        enterNextCycle(_cycleIndex: PromiseOrValue<BigNumberish>, _fundValue: PromiseOrValue<BigNumberish>, _depositLimit: PromiseOrValue<BigNumberish>, _withdrawAmount: PromiseOrValue<BigNumberish>, _cycleStartTimestamp: PromiseOrValue<BigNumberish>, _fundingLockTimestamp: PromiseOrValue<BigNumberish>, _closeFund: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        feeConfig(overrides?: CallOverrides): Promise<[
            string,
            string,
            number,
            number,
            number,
            number,
            number,
            number,
            number,
            number
        ] & {
            platformVault: string;
            managerVault: string;
            platformEntryFee: number;
            managerEntryFee: number;
            platformExitFee: number;
            managerExitFee: number;
            platformPerformanceFee: number;
            managerPerformanceFee: number;
            platformManagementFee: number;
            managerManagementFee: number;
        }>;
        fundConfig(overrides?: CallOverrides): Promise<[
            string,
            boolean,
            boolean,
            boolean,
            boolean,
            boolean
        ] & {
            teaVaultV2: string;
            disableNFTChecks: boolean;
            disableDepositing: boolean;
            disableWithdrawing: boolean;
            disableCancelDepositing: boolean;
            disableCancelWithdrawing: boolean;
        }>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        globalState(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            depositLimit: BigNumber;
            lockedAssets: BigNumber;
            cycleIndex: number;
            cycleStartTimestamp: BigNumber;
            fundingLockTimestamp: BigNumber;
            fundClosed: boolean;
        }>;
        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]>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialPrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            numerator: BigNumber;
            denominator: BigNumber;
        }>;
        name(overrides?: CallOverrides): Promise<[string]>;
        nftEnabled(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        previewNextCycle(_fundValue: PromiseOrValue<BigNumberish>, _timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            withdrawAmount: BigNumber;
        }>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        requestedFunds(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            assets: BigNumber;
            shares: BigNumber;
        }>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDepositLimit(_depositLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDisableFunding(_disableDepositing: PromiseOrValue<boolean>, _disableWithdrawing: PromiseOrValue<boolean>, _disableCancelDepositing: PromiseOrValue<boolean>, _disableCancelWithdrawing: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDisableNFTChecks(_checks: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setEnabledNFTs(_nfts: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeConfig(_feeConfig: IHighTableVault.FeeConfigStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFundLockingTimestamp(_fundLockingTimestamp: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTeaVaultV2(_teaVaultV2: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userState(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            number
        ] & {
            requestedDeposits: BigNumber;
            owedShares: BigNumber;
            requestedWithdrawals: BigNumber;
            owedAssets: BigNumber;
            requestCycleIndex: number;
        }>;
        withdrawFromVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    AUDITOR_ROLE(overrides?: CallOverrides): Promise<string>;
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    SECONDS_IN_A_YEAR(overrides?: CallOverrides): Promise<BigNumber>;
    allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    asset(overrides?: CallOverrides): Promise<string>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    cancelDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    cancelWithdraw(_shares: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAndRequestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAndRequestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOwedAssets(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOwedFunds(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOwedShares(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closePosition(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closePositionAndClaim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closePrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        numerator: BigNumber;
        denominator: BigNumber;
    }>;
    cycleState(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        totalFundValue: BigNumber;
        fundValueAfterRequests: BigNumber;
        requestedDeposits: BigNumber;
        convertedDeposits: BigNumber;
        requestedWithdrawals: BigNumber;
        convertedWithdrawals: BigNumber;
    }>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositToVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    enterNextCycle(_cycleIndex: PromiseOrValue<BigNumberish>, _fundValue: PromiseOrValue<BigNumberish>, _depositLimit: PromiseOrValue<BigNumberish>, _withdrawAmount: PromiseOrValue<BigNumberish>, _cycleStartTimestamp: PromiseOrValue<BigNumberish>, _fundingLockTimestamp: PromiseOrValue<BigNumberish>, _closeFund: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    feeConfig(overrides?: CallOverrides): Promise<[
        string,
        string,
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number
    ] & {
        platformVault: string;
        managerVault: string;
        platformEntryFee: number;
        managerEntryFee: number;
        platformExitFee: number;
        managerExitFee: number;
        platformPerformanceFee: number;
        managerPerformanceFee: number;
        platformManagementFee: number;
        managerManagementFee: number;
    }>;
    fundConfig(overrides?: CallOverrides): Promise<[
        string,
        boolean,
        boolean,
        boolean,
        boolean,
        boolean
    ] & {
        teaVaultV2: string;
        disableNFTChecks: boolean;
        disableDepositing: boolean;
        disableWithdrawing: boolean;
        disableCancelDepositing: boolean;
        disableCancelWithdrawing: boolean;
    }>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    globalState(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        number,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        depositLimit: BigNumber;
        lockedAssets: BigNumber;
        cycleIndex: number;
        cycleStartTimestamp: BigNumber;
        fundingLockTimestamp: BigNumber;
        fundClosed: boolean;
    }>;
    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>;
    increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialPrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        numerator: BigNumber;
        denominator: BigNumber;
    }>;
    name(overrides?: CallOverrides): Promise<string>;
    nftEnabled(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    previewNextCycle(_fundValue: PromiseOrValue<BigNumberish>, _timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    requestedFunds(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        assets: BigNumber;
        shares: BigNumber;
    }>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDepositLimit(_depositLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDisableFunding(_disableDepositing: PromiseOrValue<boolean>, _disableWithdrawing: PromiseOrValue<boolean>, _disableCancelDepositing: PromiseOrValue<boolean>, _disableCancelWithdrawing: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDisableNFTChecks(_checks: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setEnabledNFTs(_nfts: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeConfig(_feeConfig: IHighTableVault.FeeConfigStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFundLockingTimestamp(_fundLockingTimestamp: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTeaVaultV2(_teaVaultV2: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userState(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        number
    ] & {
        requestedDeposits: BigNumber;
        owedShares: BigNumber;
        requestedWithdrawals: BigNumber;
        owedAssets: BigNumber;
        requestCycleIndex: number;
    }>;
    withdrawFromVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        AUDITOR_ROLE(overrides?: CallOverrides): Promise<string>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        SECONDS_IN_A_YEAR(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        asset(overrides?: CallOverrides): Promise<string>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        cancelDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        cancelWithdraw(_shares: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        claimAndRequestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimAndRequestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimOwedAssets(_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claimOwedFunds(_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            assets: BigNumber;
            shares: BigNumber;
        }>;
        claimOwedShares(_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        closePosition(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        closePositionAndClaim(_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        closePrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            numerator: BigNumber;
            denominator: BigNumber;
        }>;
        cycleState(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            totalFundValue: BigNumber;
            fundValueAfterRequests: BigNumber;
            requestedDeposits: BigNumber;
            convertedDeposits: BigNumber;
            requestedWithdrawals: BigNumber;
            convertedWithdrawals: BigNumber;
        }>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        depositToVault(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        enterNextCycle(_cycleIndex: PromiseOrValue<BigNumberish>, _fundValue: PromiseOrValue<BigNumberish>, _depositLimit: PromiseOrValue<BigNumberish>, _withdrawAmount: PromiseOrValue<BigNumberish>, _cycleStartTimestamp: PromiseOrValue<BigNumberish>, _fundingLockTimestamp: PromiseOrValue<BigNumberish>, _closeFund: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            platformFee: BigNumber;
            managerFee: BigNumber;
        }>;
        feeConfig(overrides?: CallOverrides): Promise<[
            string,
            string,
            number,
            number,
            number,
            number,
            number,
            number,
            number,
            number
        ] & {
            platformVault: string;
            managerVault: string;
            platformEntryFee: number;
            managerEntryFee: number;
            platformExitFee: number;
            managerExitFee: number;
            platformPerformanceFee: number;
            managerPerformanceFee: number;
            platformManagementFee: number;
            managerManagementFee: number;
        }>;
        fundConfig(overrides?: CallOverrides): Promise<[
            string,
            boolean,
            boolean,
            boolean,
            boolean,
            boolean
        ] & {
            teaVaultV2: string;
            disableNFTChecks: boolean;
            disableDepositing: boolean;
            disableWithdrawing: boolean;
            disableCancelDepositing: boolean;
            disableCancelWithdrawing: boolean;
        }>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        globalState(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            depositLimit: BigNumber;
            lockedAssets: BigNumber;
            cycleIndex: number;
            cycleStartTimestamp: BigNumber;
            fundingLockTimestamp: BigNumber;
            fundClosed: boolean;
        }>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        initialPrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            numerator: BigNumber;
            denominator: BigNumber;
        }>;
        name(overrides?: CallOverrides): Promise<string>;
        nftEnabled(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        previewNextCycle(_fundValue: PromiseOrValue<BigNumberish>, _timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        requestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        requestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        requestedFunds(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            assets: BigNumber;
            shares: BigNumber;
        }>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDepositLimit(_depositLimit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setDisableFunding(_disableDepositing: PromiseOrValue<boolean>, _disableWithdrawing: PromiseOrValue<boolean>, _disableCancelDepositing: PromiseOrValue<boolean>, _disableCancelWithdrawing: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setDisableNFTChecks(_checks: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setEnabledNFTs(_nfts: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        setFeeConfig(_feeConfig: IHighTableVault.FeeConfigStruct, overrides?: CallOverrides): Promise<void>;
        setFundLockingTimestamp(_fundLockingTimestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setTeaVaultV2(_teaVaultV2: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        userState(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            number
        ] & {
            requestedDeposits: BigNumber;
            owedShares: BigNumber;
            requestedWithdrawals: BigNumber;
            owedAssets: BigNumber;
            requestCycleIndex: number;
        }>;
        withdrawFromVault(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'ClaimOwedAssets(address,address,uint256)'(caller?: PromiseOrValue<string> | null, receiver?: PromiseOrValue<string> | null, assets?: null): ClaimOwedAssetsEventFilter;
        ClaimOwedAssets(caller?: PromiseOrValue<string> | null, receiver?: PromiseOrValue<string> | null, assets?: null): ClaimOwedAssetsEventFilter;
        'ClaimOwedShares(address,address,uint256)'(caller?: PromiseOrValue<string> | null, receiver?: PromiseOrValue<string> | null, shares?: null): ClaimOwedSharesEventFilter;
        ClaimOwedShares(caller?: PromiseOrValue<string> | null, receiver?: PromiseOrValue<string> | null, shares?: null): ClaimOwedSharesEventFilter;
        'ConvertToAssets(address,uint32,uint256,uint256)'(owner?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, shares?: null, assets?: null): ConvertToAssetsEventFilter;
        ConvertToAssets(owner?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, shares?: null, assets?: null): ConvertToAssetsEventFilter;
        'ConvertToShares(address,uint32,uint256,uint256)'(owner?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, assets?: null, shares?: null): ConvertToSharesEventFilter;
        ConvertToShares(owner?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, assets?: null, shares?: null): ConvertToSharesEventFilter;
        'DepositCanceled(address,uint32,address,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, assets?: null): DepositCanceledEventFilter;
        DepositCanceled(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, assets?: null): DepositCanceledEventFilter;
        'DepositLimitUpdated(address,uint32,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, depositLimit?: null): DepositLimitUpdatedEventFilter;
        DepositLimitUpdated(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, depositLimit?: null): DepositLimitUpdatedEventFilter;
        'DepositRequested(address,uint32,address,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, assets?: null): DepositRequestedEventFilter;
        DepositRequested(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, assets?: null): DepositRequestedEventFilter;
        'DepositToVault(address,uint32,address,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, teaVaultV2?: null, value?: null): DepositToVaultEventFilter;
        DepositToVault(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, teaVaultV2?: null, value?: null): DepositToVaultEventFilter;
        'DisableNFTChecks(address,uint32,bool)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, disableChecks?: null): DisableNFTChecksEventFilter;
        DisableNFTChecks(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, disableChecks?: null): DisableNFTChecksEventFilter;
        'EnterNextCycle(address,uint32,uint256,uint256,uint256,uint256,uint64,uint64,bool,uint256,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, fundValue?: null, priceNumerator?: null, priceDenominator?: null, depositLimit?: null, startTimestamp?: null, lockTimestamp?: null, fundClosed?: null, platformFee?: null, managerFee?: null): EnterNextCycleEventFilter;
        EnterNextCycle(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, fundValue?: null, priceNumerator?: null, priceDenominator?: null, depositLimit?: null, startTimestamp?: null, lockTimestamp?: null, fundClosed?: null, platformFee?: null, managerFee?: null): EnterNextCycleEventFilter;
        'FeeConfigChanged(address,uint32,tuple)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, feeConfig?: null): FeeConfigChangedEventFilter;
        FeeConfigChanged(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, feeConfig?: null): FeeConfigChangedEventFilter;
        'FundInitialized(address,uint256,uint256,uint64,address)'(caller?: PromiseOrValue<string> | null, priceNumerator?: null, priceDenominator?: null, startTimestamp?: null, admin?: null): FundInitializedEventFilter;
        FundInitialized(caller?: PromiseOrValue<string> | null, priceNumerator?: null, priceDenominator?: null, startTimestamp?: null, admin?: null): FundInitializedEventFilter;
        'FundLockingTimestampUpdated(address,uint32,uint64)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, lockTimestamp?: null): FundLockingTimestampUpdatedEventFilter;
        FundLockingTimestampUpdated(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, lockTimestamp?: null): FundLockingTimestampUpdatedEventFilter;
        'FundingChanged(address,uint32,bool,bool,bool,bool)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, disableDepositing?: null, disableWithdrawing?: null, disableCancelDepositing?: null, disableCancelWithdrawing?: null): FundingChangedEventFilter;
        FundingChanged(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, disableDepositing?: null, disableWithdrawing?: null, disableCancelDepositing?: null, disableCancelWithdrawing?: null): FundingChangedEventFilter;
        'NFTEnabled(address,uint32,address[])'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, nfts?: null): NFTEnabledEventFilter;
        NFTEnabled(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, nfts?: null): NFTEnabledEventFilter;
        '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;
        '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;
        'UpdateTeaVaultV2(address,uint32,address)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, teaVaultV2?: null): UpdateTeaVaultV2EventFilter;
        UpdateTeaVaultV2(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, teaVaultV2?: null): UpdateTeaVaultV2EventFilter;
        'WithdrawFromVault(address,uint32,address,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, teaVaultV2?: null, value?: null): WithdrawFromVaultEventFilter;
        WithdrawFromVault(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, teaVaultV2?: null, value?: null): WithdrawFromVaultEventFilter;
        'WithdrawalCanceled(address,uint32,address,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, shares?: null): WithdrawalCanceledEventFilter;
        WithdrawalCanceled(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, shares?: null): WithdrawalCanceledEventFilter;
        'WithdrawalRequested(address,uint32,address,uint256)'(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, owner?: PromiseOrValue<string> | null, shares?: null): WithdrawalRequestedEventFilter;
        WithdrawalRequested(caller?: PromiseOrValue<string> | null, cycleIndex?: PromiseOrValue<BigNumberish> | null, owner?: PromiseOrValue<string> | null, shares?: null): WithdrawalRequestedEventFilter;
    };
    estimateGas: {
        AUDITOR_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        SECONDS_IN_A_YEAR(overrides?: CallOverrides): Promise<BigNumber>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        asset(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        cancelDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        cancelWithdraw(_shares: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAndRequestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAndRequestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOwedAssets(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOwedFunds(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOwedShares(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closePosition(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closePositionAndClaim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closePrice(overrides?: CallOverrides): Promise<BigNumber>;
        cycleState(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositToVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        enterNextCycle(_cycleIndex: PromiseOrValue<BigNumberish>, _fundValue: PromiseOrValue<BigNumberish>, _depositLimit: PromiseOrValue<BigNumberish>, _withdrawAmount: PromiseOrValue<BigNumberish>, _cycleStartTimestamp: PromiseOrValue<BigNumberish>, _fundingLockTimestamp: PromiseOrValue<BigNumberish>, _closeFund: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        feeConfig(overrides?: CallOverrides): Promise<BigNumber>;
        fundConfig(overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        globalState(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>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialPrice(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        nftEnabled(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewNextCycle(_fundValue: PromiseOrValue<BigNumberish>, _timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        requestedFunds(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDepositLimit(_depositLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDisableFunding(_disableDepositing: PromiseOrValue<boolean>, _disableWithdrawing: PromiseOrValue<boolean>, _disableCancelDepositing: PromiseOrValue<boolean>, _disableCancelWithdrawing: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDisableNFTChecks(_checks: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setEnabledNFTs(_nfts: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeConfig(_feeConfig: IHighTableVault.FeeConfigStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFundLockingTimestamp(_fundLockingTimestamp: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTeaVaultV2(_teaVaultV2: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userState(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawFromVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        AUDITOR_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SECONDS_IN_A_YEAR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        asset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cancelDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        cancelWithdraw(_shares: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAndRequestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAndRequestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOwedAssets(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOwedFunds(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOwedShares(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closePosition(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closePositionAndClaim(_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closePrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cycleState(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositToVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        enterNextCycle(_cycleIndex: PromiseOrValue<BigNumberish>, _fundValue: PromiseOrValue<BigNumberish>, _depositLimit: PromiseOrValue<BigNumberish>, _withdrawAmount: PromiseOrValue<BigNumberish>, _cycleStartTimestamp: PromiseOrValue<BigNumberish>, _fundingLockTimestamp: PromiseOrValue<BigNumberish>, _closeFund: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        feeConfig(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fundConfig(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        globalState(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>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nftEnabled(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewNextCycle(_fundValue: PromiseOrValue<BigNumberish>, _timestamp: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestDeposit(_assets: PromiseOrValue<BigNumberish>, _receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestWithdraw(_shares: PromiseOrValue<BigNumberish>, _owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        requestedFunds(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDepositLimit(_depositLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDisableFunding(_disableDepositing: PromiseOrValue<boolean>, _disableWithdrawing: PromiseOrValue<boolean>, _disableCancelDepositing: PromiseOrValue<boolean>, _disableCancelWithdrawing: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDisableNFTChecks(_checks: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setEnabledNFTs(_nfts: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeConfig(_feeConfig: IHighTableVault.FeeConfigStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFundLockingTimestamp(_fundLockingTimestamp: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTeaVaultV2(_teaVaultV2: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userState(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawFromVault(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
