import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface DhedgeV2TokenInterface extends utils.Interface {
    functions: {
        'addMember(address)': FunctionFragment;
        'addMembers(address[])': FunctionFragment;
        'addressResolver()': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'assetPosition(bytes32)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'changeManager(address,string)': FunctionFragment;
        'creationTime()': FunctionFragment;
        'creator()': FunctionFragment;
        'decimals()': FunctionFragment;
        'decreaseAllowance(address,uint256)': FunctionFragment;
        'factory()': FunctionFragment;
        'getMembers()': FunctionFragment;
        'increaseAllowance(address,uint256)': FunctionFragment;
        'isMemberAllowed(address)': FunctionFragment;
        'lastDeposit(address)': FunctionFragment;
        'manager()': FunctionFragment;
        'managerName()': FunctionFragment;
        'name()': FunctionFragment;
        'numberOfMembers()': FunctionFragment;
        'persistentAsset(bytes32)': FunctionFragment;
        'privatePool()': FunctionFragment;
        'removeMember(address)': FunctionFragment;
        'removeMembers(address[])': FunctionFragment;
        'supportedAssets(uint256)': FunctionFragment;
        'symbol()': FunctionFragment;
        'tokenPriceAtLastFeeMint()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'initialize(address,bool,address,string,string,address,bytes32[])': FunctionFragment;
        'setPoolPrivate(bool)': FunctionFragment;
        'getAssetProxy(bytes32)': FunctionFragment;
        'isAssetSupported(bytes32)': FunctionFragment;
        'validateAsset(bytes32)': FunctionFragment;
        'addToSupportedAssets(bytes32)': FunctionFragment;
        'removeFromSupportedAssets(bytes32)': FunctionFragment;
        'numberOfSupportedAssets()': FunctionFragment;
        'exchange(bytes32,uint256,bytes32)': FunctionFragment;
        'totalFundValue()': FunctionFragment;
        'assetValue(bytes32)': FunctionFragment;
        'deposit(uint256)': FunctionFragment;
        'withdraw(uint256)': FunctionFragment;
        'forfeitSuspendedSynthsAndWithdraw(uint256)': FunctionFragment;
        'getFundSummary()': FunctionFragment;
        'getSupportedAssets()': FunctionFragment;
        'getFundComposition()': FunctionFragment;
        'getWaitingPeriods()': FunctionFragment;
        'getSuspendedAssets()': FunctionFragment;
        'tokenPrice()': FunctionFragment;
        'availableManagerFee()': FunctionFragment;
        'mintManagerFee()': FunctionFragment;
        'getManagerFee()': FunctionFragment;
        'setManagerFeeNumerator(uint256)': FunctionFragment;
        'getExitFee()': FunctionFragment;
        'getExitFeeCooldown()': FunctionFragment;
        'getExitFeeRemainingCooldown(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'addMember' | 'addMembers' | 'addressResolver' | 'allowance' | 'approve' | 'assetPosition' | 'balanceOf' | 'changeManager' | 'creationTime' | 'creator' | 'decimals' | 'decreaseAllowance' | 'factory' | 'getMembers' | 'increaseAllowance' | 'isMemberAllowed' | 'lastDeposit' | 'manager' | 'managerName' | 'name' | 'numberOfMembers' | 'persistentAsset' | 'privatePool' | 'removeMember' | 'removeMembers' | 'supportedAssets' | 'symbol' | 'tokenPriceAtLastFeeMint' | 'totalSupply' | 'transfer' | 'transferFrom' | 'initialize' | 'setPoolPrivate' | 'getAssetProxy' | 'isAssetSupported' | 'validateAsset' | 'addToSupportedAssets' | 'removeFromSupportedAssets' | 'numberOfSupportedAssets' | 'exchange' | 'totalFundValue' | 'assetValue' | 'deposit' | 'withdraw' | 'forfeitSuspendedSynthsAndWithdraw' | 'getFundSummary' | 'getSupportedAssets' | 'getFundComposition' | 'getWaitingPeriods' | 'getSuspendedAssets' | 'tokenPrice' | 'availableManagerFee' | 'mintManagerFee' | 'getManagerFee' | 'setManagerFeeNumerator' | 'getExitFee' | 'getExitFeeCooldown' | 'getExitFeeRemainingCooldown'): FunctionFragment;
    encodeFunctionData(functionFragment: 'addMember', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addMembers', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'addressResolver', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'assetPosition', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'changeManager', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'creationTime', values?: undefined): string;
    encodeFunctionData(functionFragment: 'creator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decreaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'factory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getMembers', values?: undefined): string;
    encodeFunctionData(functionFragment: 'increaseAllowance', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isMemberAllowed', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lastDeposit', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'manager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'managerName', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'numberOfMembers', values?: undefined): string;
    encodeFunctionData(functionFragment: 'persistentAsset', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'privatePool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'removeMember', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'removeMembers', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'supportedAssets', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenPriceAtLastFeeMint', 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: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<boolean>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>[]
    ]): string;
    encodeFunctionData(functionFragment: 'setPoolPrivate', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'getAssetProxy', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'isAssetSupported', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'validateAsset', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'addToSupportedAssets', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'removeFromSupportedAssets', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'numberOfSupportedAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'exchange', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'totalFundValue', values?: undefined): string;
    encodeFunctionData(functionFragment: 'assetValue', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'forfeitSuspendedSynthsAndWithdraw', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getFundSummary', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getSupportedAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getFundComposition', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getWaitingPeriods', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getSuspendedAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'availableManagerFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mintManagerFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getManagerFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setManagerFeeNumerator', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getExitFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getExitFeeCooldown', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getExitFeeRemainingCooldown', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'addMember', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addMembers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addressResolver', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'assetPosition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'changeManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'creationTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'creator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'factory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMembers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isMemberAllowed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'manager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'managerName', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'numberOfMembers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'persistentAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'privatePool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeMember', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeMembers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenPriceAtLastFeeMint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPoolPrivate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAssetProxy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isAssetSupported', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'validateAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addToSupportedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeFromSupportedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'numberOfSupportedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalFundValue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'assetValue', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'forfeitSuspendedSynthsAndWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFundSummary', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSupportedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFundComposition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getWaitingPeriods', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSuspendedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'availableManagerFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mintManagerFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getManagerFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setManagerFeeNumerator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getExitFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getExitFeeCooldown', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getExitFeeRemainingCooldown', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'AssetAdded(address,address,bytes32)': EventFragment;
        'AssetRemoved(address,address,bytes32)': EventFragment;
        'Deposit(address,address,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'Exchange(address,address,bytes32,uint256,bytes32,uint256,uint256)': EventFragment;
        'ManagerFeeMinted(address,address,uint256,uint256,uint256,uint256)': EventFragment;
        'ManagerFeeSet(address,address,uint256,uint256)': EventFragment;
        'ManagerUpdated(address,string)': EventFragment;
        'PoolPrivacyUpdated(bool)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'Withdrawal(address,address,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssetAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssetRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Exchange'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ManagerFeeMinted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ManagerFeeSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ManagerUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PoolPrivacyUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdrawal'): 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 AssetAddedEventObject {
    fundAddress: string;
    manager: string;
    assetKey: string;
}
export declare type AssetAddedEvent = TypedEvent<[string, string, string], AssetAddedEventObject>;
export declare type AssetAddedEventFilter = TypedEventFilter<AssetAddedEvent>;
export interface AssetRemovedEventObject {
    fundAddress: string;
    manager: string;
    assetKey: string;
}
export declare type AssetRemovedEvent = TypedEvent<[string, string, string], AssetRemovedEventObject>;
export declare type AssetRemovedEventFilter = TypedEventFilter<AssetRemovedEvent>;
export interface DepositEventObject {
    fundAddress: string;
    investor: string;
    valueDeposited: BigNumber;
    fundTokensReceived: BigNumber;
    totalInvestorFundTokens: BigNumber;
    fundValue: BigNumber;
    totalSupply: BigNumber;
    time: BigNumber;
}
export declare type DepositEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface ExchangeEventObject {
    fundAddress: string;
    manager: string;
    sourceKey: string;
    sourceAmount: BigNumber;
    destinationKey: string;
    destinationAmount: BigNumber;
    time: BigNumber;
}
export declare type ExchangeEvent = TypedEvent<[
    string,
    string,
    string,
    BigNumber,
    string,
    BigNumber,
    BigNumber
], ExchangeEventObject>;
export declare type ExchangeEventFilter = TypedEventFilter<ExchangeEvent>;
export interface ManagerFeeMintedEventObject {
    pool: string;
    manager: string;
    available: BigNumber;
    daoFee: BigNumber;
    managerFee: BigNumber;
    tokenPriceAtLastFeeMint: BigNumber;
}
export declare type ManagerFeeMintedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], ManagerFeeMintedEventObject>;
export declare type ManagerFeeMintedEventFilter = TypedEventFilter<ManagerFeeMintedEvent>;
export interface ManagerFeeSetEventObject {
    fundAddress: string;
    manager: string;
    numerator: BigNumber;
    denominator: BigNumber;
}
export declare type ManagerFeeSetEvent = TypedEvent<[string, string, BigNumber, BigNumber], ManagerFeeSetEventObject>;
export declare type ManagerFeeSetEventFilter = TypedEventFilter<ManagerFeeSetEvent>;
export interface ManagerUpdatedEventObject {
    newManager: string;
    newManagerName: string;
}
export declare type ManagerUpdatedEvent = TypedEvent<[string, string], ManagerUpdatedEventObject>;
export declare type ManagerUpdatedEventFilter = TypedEventFilter<ManagerUpdatedEvent>;
export interface PoolPrivacyUpdatedEventObject {
    isPoolPrivate: boolean;
}
export declare type PoolPrivacyUpdatedEvent = TypedEvent<[boolean], PoolPrivacyUpdatedEventObject>;
export declare type PoolPrivacyUpdatedEventFilter = TypedEventFilter<PoolPrivacyUpdatedEvent>;
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 WithdrawalEventObject {
    fundAddress: string;
    investor: string;
    valueWithdrawn: BigNumber;
    fundTokensWithdrawn: BigNumber;
    totalInvestorFundTokens: BigNumber;
    fundValue: BigNumber;
    totalSupply: BigNumber;
    time: BigNumber;
}
export declare type WithdrawalEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], WithdrawalEventObject>;
export declare type WithdrawalEventFilter = TypedEventFilter<WithdrawalEvent>;
export interface DhedgeV2Token extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: DhedgeV2TokenInterface;
    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: {
        addMember(member: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addressResolver(overrides?: CallOverrides): Promise<[string]>;
        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>;
        assetPosition(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        changeManager(newManager: PromiseOrValue<string>, newManagerName: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        creationTime(overrides?: CallOverrides): Promise<[BigNumber]>;
        creator(overrides?: CallOverrides): Promise<[string]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        factory(overrides?: CallOverrides): Promise<[string]>;
        getMembers(overrides?: CallOverrides): Promise<[string[]]>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isMemberAllowed(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        lastDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        manager(overrides?: CallOverrides): Promise<[string]>;
        managerName(overrides?: CallOverrides): Promise<[string]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        numberOfMembers(overrides?: CallOverrides): Promise<[BigNumber]>;
        persistentAsset(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        privatePool(overrides?: CallOverrides): Promise<[boolean]>;
        removeMember(member: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportedAssets(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        tokenPriceAtLastFeeMint(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_factory: PromiseOrValue<string>, _privatePool: PromiseOrValue<boolean>, _manager: PromiseOrValue<string>, _managerName: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, _addressResolver: PromiseOrValue<string>, _supportedAssets: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPoolPrivate(_privatePool: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getAssetProxy(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        isAssetSupported(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        validateAsset(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        addToSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeFromSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        numberOfSupportedAssets(overrides?: CallOverrides): Promise<[BigNumber]>;
        exchange(sourceKey: PromiseOrValue<BytesLike>, sourceAmount: PromiseOrValue<BigNumberish>, destinationKey: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalFundValue(overrides?: CallOverrides): Promise<[BigNumber]>;
        assetValue(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        deposit(_susdAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        forfeitSuspendedSynthsAndWithdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getFundSummary(overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            string,
            string,
            BigNumber,
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ]>;
        getSupportedAssets(overrides?: CallOverrides): Promise<[string[]]>;
        getFundComposition(overrides?: CallOverrides): Promise<[string[], BigNumber[], BigNumber[]]>;
        getWaitingPeriods(overrides?: CallOverrides): Promise<[string[], BigNumber[]]>;
        getSuspendedAssets(overrides?: CallOverrides): Promise<[string[], boolean[]]>;
        tokenPrice(overrides?: CallOverrides): Promise<[BigNumber]>;
        availableManagerFee(overrides?: CallOverrides): Promise<[BigNumber]>;
        mintManagerFee(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getManagerFee(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        setManagerFeeNumerator(numerator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getExitFee(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        getExitFeeCooldown(overrides?: CallOverrides): Promise<[BigNumber]>;
        getExitFeeRemainingCooldown(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    addMember(member: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addressResolver(overrides?: CallOverrides): Promise<string>;
    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>;
    assetPosition(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    changeManager(newManager: PromiseOrValue<string>, newManagerName: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    creationTime(overrides?: CallOverrides): Promise<BigNumber>;
    creator(overrides?: CallOverrides): Promise<string>;
    decimals(overrides?: CallOverrides): Promise<number>;
    decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    factory(overrides?: CallOverrides): Promise<string>;
    getMembers(overrides?: CallOverrides): Promise<string[]>;
    increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isMemberAllowed(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    lastDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    manager(overrides?: CallOverrides): Promise<string>;
    managerName(overrides?: CallOverrides): Promise<string>;
    name(overrides?: CallOverrides): Promise<string>;
    numberOfMembers(overrides?: CallOverrides): Promise<BigNumber>;
    persistentAsset(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    privatePool(overrides?: CallOverrides): Promise<boolean>;
    removeMember(member: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportedAssets(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    symbol(overrides?: CallOverrides): Promise<string>;
    tokenPriceAtLastFeeMint(overrides?: CallOverrides): Promise<BigNumber>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_factory: PromiseOrValue<string>, _privatePool: PromiseOrValue<boolean>, _manager: PromiseOrValue<string>, _managerName: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, _addressResolver: PromiseOrValue<string>, _supportedAssets: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPoolPrivate(_privatePool: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getAssetProxy(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    isAssetSupported(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    validateAsset(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    addToSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeFromSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    numberOfSupportedAssets(overrides?: CallOverrides): Promise<BigNumber>;
    exchange(sourceKey: PromiseOrValue<BytesLike>, sourceAmount: PromiseOrValue<BigNumberish>, destinationKey: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalFundValue(overrides?: CallOverrides): Promise<BigNumber>;
    assetValue(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    deposit(_susdAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    forfeitSuspendedSynthsAndWithdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getFundSummary(overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        string,
        string,
        BigNumber,
        boolean,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ]>;
    getSupportedAssets(overrides?: CallOverrides): Promise<string[]>;
    getFundComposition(overrides?: CallOverrides): Promise<[string[], BigNumber[], BigNumber[]]>;
    getWaitingPeriods(overrides?: CallOverrides): Promise<[string[], BigNumber[]]>;
    getSuspendedAssets(overrides?: CallOverrides): Promise<[string[], boolean[]]>;
    tokenPrice(overrides?: CallOverrides): Promise<BigNumber>;
    availableManagerFee(overrides?: CallOverrides): Promise<BigNumber>;
    mintManagerFee(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getManagerFee(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    setManagerFeeNumerator(numerator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getExitFee(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    getExitFeeCooldown(overrides?: CallOverrides): Promise<BigNumber>;
    getExitFeeRemainingCooldown(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        addMember(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        addMembers(members: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        addressResolver(overrides?: CallOverrides): Promise<string>;
        allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(spender: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        assetPosition(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        changeManager(newManager: PromiseOrValue<string>, newManagerName: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        creationTime(overrides?: CallOverrides): Promise<BigNumber>;
        creator(overrides?: CallOverrides): Promise<string>;
        decimals(overrides?: CallOverrides): Promise<number>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        factory(overrides?: CallOverrides): Promise<string>;
        getMembers(overrides?: CallOverrides): Promise<string[]>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isMemberAllowed(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        lastDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        manager(overrides?: CallOverrides): Promise<string>;
        managerName(overrides?: CallOverrides): Promise<string>;
        name(overrides?: CallOverrides): Promise<string>;
        numberOfMembers(overrides?: CallOverrides): Promise<BigNumber>;
        persistentAsset(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        privatePool(overrides?: CallOverrides): Promise<boolean>;
        removeMember(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeMembers(members: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        supportedAssets(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        symbol(overrides?: CallOverrides): Promise<string>;
        tokenPriceAtLastFeeMint(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        initialize(_factory: PromiseOrValue<string>, _privatePool: PromiseOrValue<boolean>, _manager: PromiseOrValue<string>, _managerName: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, _addressResolver: PromiseOrValue<string>, _supportedAssets: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<void>;
        setPoolPrivate(_privatePool: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        getAssetProxy(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        isAssetSupported(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        validateAsset(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        addToSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        removeFromSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        numberOfSupportedAssets(overrides?: CallOverrides): Promise<BigNumber>;
        exchange(sourceKey: PromiseOrValue<BytesLike>, sourceAmount: PromiseOrValue<BigNumberish>, destinationKey: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        totalFundValue(overrides?: CallOverrides): Promise<BigNumber>;
        assetValue(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_susdAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        forfeitSuspendedSynthsAndWithdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getFundSummary(overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            string,
            string,
            BigNumber,
            boolean,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ]>;
        getSupportedAssets(overrides?: CallOverrides): Promise<string[]>;
        getFundComposition(overrides?: CallOverrides): Promise<[string[], BigNumber[], BigNumber[]]>;
        getWaitingPeriods(overrides?: CallOverrides): Promise<[string[], BigNumber[]]>;
        getSuspendedAssets(overrides?: CallOverrides): Promise<[string[], boolean[]]>;
        tokenPrice(overrides?: CallOverrides): Promise<BigNumber>;
        availableManagerFee(overrides?: CallOverrides): Promise<BigNumber>;
        mintManagerFee(overrides?: CallOverrides): Promise<void>;
        getManagerFee(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        setManagerFeeNumerator(numerator: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getExitFee(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        getExitFeeCooldown(overrides?: CallOverrides): Promise<BigNumber>;
        getExitFeeRemainingCooldown(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    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;
        'AssetAdded(address,address,bytes32)'(fundAddress?: null, manager?: null, assetKey?: null): AssetAddedEventFilter;
        AssetAdded(fundAddress?: null, manager?: null, assetKey?: null): AssetAddedEventFilter;
        'AssetRemoved(address,address,bytes32)'(fundAddress?: null, manager?: null, assetKey?: null): AssetRemovedEventFilter;
        AssetRemoved(fundAddress?: null, manager?: null, assetKey?: null): AssetRemovedEventFilter;
        'Deposit(address,address,uint256,uint256,uint256,uint256,uint256,uint256)'(fundAddress?: null, investor?: null, valueDeposited?: null, fundTokensReceived?: null, totalInvestorFundTokens?: null, fundValue?: null, totalSupply?: null, time?: null): DepositEventFilter;
        Deposit(fundAddress?: null, investor?: null, valueDeposited?: null, fundTokensReceived?: null, totalInvestorFundTokens?: null, fundValue?: null, totalSupply?: null, time?: null): DepositEventFilter;
        'Exchange(address,address,bytes32,uint256,bytes32,uint256,uint256)'(fundAddress?: null, manager?: null, sourceKey?: null, sourceAmount?: null, destinationKey?: null, destinationAmount?: null, time?: null): ExchangeEventFilter;
        Exchange(fundAddress?: null, manager?: null, sourceKey?: null, sourceAmount?: null, destinationKey?: null, destinationAmount?: null, time?: null): ExchangeEventFilter;
        'ManagerFeeMinted(address,address,uint256,uint256,uint256,uint256)'(pool?: null, manager?: null, available?: null, daoFee?: null, managerFee?: null, tokenPriceAtLastFeeMint?: null): ManagerFeeMintedEventFilter;
        ManagerFeeMinted(pool?: null, manager?: null, available?: null, daoFee?: null, managerFee?: null, tokenPriceAtLastFeeMint?: null): ManagerFeeMintedEventFilter;
        'ManagerFeeSet(address,address,uint256,uint256)'(fundAddress?: null, manager?: null, numerator?: null, denominator?: null): ManagerFeeSetEventFilter;
        ManagerFeeSet(fundAddress?: null, manager?: null, numerator?: null, denominator?: null): ManagerFeeSetEventFilter;
        'ManagerUpdated(address,string)'(newManager?: null, newManagerName?: null): ManagerUpdatedEventFilter;
        ManagerUpdated(newManager?: null, newManagerName?: null): ManagerUpdatedEventFilter;
        'PoolPrivacyUpdated(bool)'(isPoolPrivate?: null): PoolPrivacyUpdatedEventFilter;
        PoolPrivacyUpdated(isPoolPrivate?: null): PoolPrivacyUpdatedEventFilter;
        '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;
        'Withdrawal(address,address,uint256,uint256,uint256,uint256,uint256,uint256)'(fundAddress?: null, investor?: null, valueWithdrawn?: null, fundTokensWithdrawn?: null, totalInvestorFundTokens?: null, fundValue?: null, totalSupply?: null, time?: null): WithdrawalEventFilter;
        Withdrawal(fundAddress?: null, investor?: null, valueWithdrawn?: null, fundTokensWithdrawn?: null, totalInvestorFundTokens?: null, fundValue?: null, totalSupply?: null, time?: null): WithdrawalEventFilter;
    };
    estimateGas: {
        addMember(member: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addressResolver(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>;
        assetPosition(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        changeManager(newManager: PromiseOrValue<string>, newManagerName: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        creationTime(overrides?: CallOverrides): Promise<BigNumber>;
        creator(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<BigNumber>;
        getMembers(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isMemberAllowed(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        manager(overrides?: CallOverrides): Promise<BigNumber>;
        managerName(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        numberOfMembers(overrides?: CallOverrides): Promise<BigNumber>;
        persistentAsset(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        privatePool(overrides?: CallOverrides): Promise<BigNumber>;
        removeMember(member: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportedAssets(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        tokenPriceAtLastFeeMint(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_factory: PromiseOrValue<string>, _privatePool: PromiseOrValue<boolean>, _manager: PromiseOrValue<string>, _managerName: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, _addressResolver: PromiseOrValue<string>, _supportedAssets: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPoolPrivate(_privatePool: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getAssetProxy(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        isAssetSupported(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        validateAsset(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        addToSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeFromSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        numberOfSupportedAssets(overrides?: CallOverrides): Promise<BigNumber>;
        exchange(sourceKey: PromiseOrValue<BytesLike>, sourceAmount: PromiseOrValue<BigNumberish>, destinationKey: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalFundValue(overrides?: CallOverrides): Promise<BigNumber>;
        assetValue(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_susdAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        forfeitSuspendedSynthsAndWithdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getFundSummary(overrides?: CallOverrides): Promise<BigNumber>;
        getSupportedAssets(overrides?: CallOverrides): Promise<BigNumber>;
        getFundComposition(overrides?: CallOverrides): Promise<BigNumber>;
        getWaitingPeriods(overrides?: CallOverrides): Promise<BigNumber>;
        getSuspendedAssets(overrides?: CallOverrides): Promise<BigNumber>;
        tokenPrice(overrides?: CallOverrides): Promise<BigNumber>;
        availableManagerFee(overrides?: CallOverrides): Promise<BigNumber>;
        mintManagerFee(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getManagerFee(overrides?: CallOverrides): Promise<BigNumber>;
        setManagerFeeNumerator(numerator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getExitFee(overrides?: CallOverrides): Promise<BigNumber>;
        getExitFeeCooldown(overrides?: CallOverrides): Promise<BigNumber>;
        getExitFeeRemainingCooldown(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        addMember(member: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addressResolver(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>;
        assetPosition(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        changeManager(newManager: PromiseOrValue<string>, newManagerName: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        creationTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        creator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decreaseAllowance(spender: PromiseOrValue<string>, subtractedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        factory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMembers(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAllowance(spender: PromiseOrValue<string>, addedValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isMemberAllowed(member: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        manager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        managerName(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        numberOfMembers(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        persistentAsset(arg0: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        privatePool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeMember(member: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeMembers(members: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportedAssets(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenPriceAtLastFeeMint(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(sender: PromiseOrValue<string>, recipient: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_factory: PromiseOrValue<string>, _privatePool: PromiseOrValue<boolean>, _manager: PromiseOrValue<string>, _managerName: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, _addressResolver: PromiseOrValue<string>, _supportedAssets: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPoolPrivate(_privatePool: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getAssetProxy(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isAssetSupported(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        validateAsset(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addToSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeFromSupportedAssets(key: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        numberOfSupportedAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        exchange(sourceKey: PromiseOrValue<BytesLike>, sourceAmount: PromiseOrValue<BigNumberish>, destinationKey: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalFundValue(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        assetValue(key: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(_susdAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        forfeitSuspendedSynthsAndWithdraw(_fundTokenAmount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getFundSummary(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getSupportedAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getFundComposition(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWaitingPeriods(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getSuspendedAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        availableManagerFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mintManagerFee(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getManagerFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setManagerFeeNumerator(numerator: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getExitFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getExitFeeCooldown(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getExitFeeRemainingCooldown(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
