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 EnzymeFinanceVaultInterface extends utils.Interface {
    functions: {
        'addTrackedAsset(address)': FunctionFragment;
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'approveAssetSpender(address,address,uint256)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'burnShares(address,uint256)': FunctionFragment;
        'callOnContract(address,bytes)': FunctionFragment;
        'canMigrate(address)': FunctionFragment;
        'decimals()': FunctionFragment;
        'getAccessor()': FunctionFragment;
        'getCreator()': FunctionFragment;
        'getMigrator()': FunctionFragment;
        'getOwner()': FunctionFragment;
        'getTrackedAssets()': FunctionFragment;
        'getVaultLib()': FunctionFragment;
        'init(address,address,string)': FunctionFragment;
        'isTrackedAsset(address)': FunctionFragment;
        'mintShares(address,uint256)': FunctionFragment;
        'name()': FunctionFragment;
        'proxiableUUID()': FunctionFragment;
        'removeTrackedAsset(address)': FunctionFragment;
        'setAccessor(address)': FunctionFragment;
        'setMigrator(address)': FunctionFragment;
        'setVaultLib(address)': FunctionFragment;
        'symbol()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'transferShares(address,address,uint256)': FunctionFragment;
        'withdrawAssetTo(address,address,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'addTrackedAsset' | 'allowance' | 'approve' | 'approveAssetSpender' | 'balanceOf' | 'burnShares' | 'callOnContract' | 'canMigrate' | 'decimals' | 'getAccessor' | 'getCreator' | 'getMigrator' | 'getOwner' | 'getTrackedAssets' | 'getVaultLib' | 'init' | 'isTrackedAsset' | 'mintShares' | 'name' | 'proxiableUUID' | 'removeTrackedAsset' | 'setAccessor' | 'setMigrator' | 'setVaultLib' | 'symbol' | 'totalSupply' | 'transfer' | 'transferFrom' | 'transferShares' | 'withdrawAssetTo'): FunctionFragment;
    encodeFunctionData(functionFragment: 'addTrackedAsset', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'approveAssetSpender', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'burnShares', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'callOnContract', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'canMigrate', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getAccessor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getCreator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getMigrator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTrackedAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getVaultLib', values?: undefined): string;
    encodeFunctionData(functionFragment: 'init', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isTrackedAsset', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'mintShares', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'proxiableUUID', values?: undefined): string;
    encodeFunctionData(functionFragment: 'removeTrackedAsset', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setAccessor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setMigrator', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setVaultLib', values: [PromiseOrValue<string>]): 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: 'transferShares', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawAssetTo', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'addTrackedAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approveAssetSpender', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'burnShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'callOnContract', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'canMigrate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAccessor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCreator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMigrator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTrackedAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVaultLib', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isTrackedAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mintShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proxiableUUID', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeTrackedAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAccessor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMigrator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVaultLib', 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: 'transferShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawAssetTo', data: BytesLike): Result;
    events: {
        'AccessorSet(address,address)': EventFragment;
        'Approval(address,address,uint256)': EventFragment;
        'AssetWithdrawn(address,address,uint256)': EventFragment;
        'MigratorSet(address,address)': EventFragment;
        'OwnerSet(address,address)': EventFragment;
        'TrackedAssetAdded(address)': EventFragment;
        'TrackedAssetRemoved(address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'VaultLibSet(address,address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AccessorSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssetWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MigratorSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnerSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TrackedAssetAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TrackedAssetRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VaultLibSet'): EventFragment;
}
export interface AccessorSetEventObject {
    prevAccessor: string;
    nextAccessor: string;
}
export declare type AccessorSetEvent = TypedEvent<[string, string], AccessorSetEventObject>;
export declare type AccessorSetEventFilter = TypedEventFilter<AccessorSetEvent>;
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 AssetWithdrawnEventObject {
    asset: string;
    target: string;
    amount: BigNumber;
}
export declare type AssetWithdrawnEvent = TypedEvent<[string, string, BigNumber], AssetWithdrawnEventObject>;
export declare type AssetWithdrawnEventFilter = TypedEventFilter<AssetWithdrawnEvent>;
export interface MigratorSetEventObject {
    prevMigrator: string;
    nextMigrator: string;
}
export declare type MigratorSetEvent = TypedEvent<[string, string], MigratorSetEventObject>;
export declare type MigratorSetEventFilter = TypedEventFilter<MigratorSetEvent>;
export interface OwnerSetEventObject {
    prevOwner: string;
    nextOwner: string;
}
export declare type OwnerSetEvent = TypedEvent<[string, string], OwnerSetEventObject>;
export declare type OwnerSetEventFilter = TypedEventFilter<OwnerSetEvent>;
export interface TrackedAssetAddedEventObject {
    asset: string;
}
export declare type TrackedAssetAddedEvent = TypedEvent<[string], TrackedAssetAddedEventObject>;
export declare type TrackedAssetAddedEventFilter = TypedEventFilter<TrackedAssetAddedEvent>;
export interface TrackedAssetRemovedEventObject {
    asset: string;
}
export declare type TrackedAssetRemovedEvent = TypedEvent<[string], TrackedAssetRemovedEventObject>;
export declare type TrackedAssetRemovedEventFilter = TypedEventFilter<TrackedAssetRemovedEvent>;
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 VaultLibSetEventObject {
    prevVaultLib: string;
    nextVaultLib: string;
}
export declare type VaultLibSetEvent = TypedEvent<[string, string], VaultLibSetEventObject>;
export declare type VaultLibSetEventFilter = TypedEventFilter<VaultLibSetEvent>;
export interface EnzymeFinanceVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: EnzymeFinanceVaultInterface;
    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: {
        addTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        approve(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approveAssetSpender(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        burnShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        callOnContract(_contract: PromiseOrValue<string>, _callData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        canMigrate(_who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            canMigrate_: boolean;
        }>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        getAccessor(overrides?: CallOverrides): Promise<[string] & {
            accessor_: string;
        }>;
        getCreator(overrides?: CallOverrides): Promise<[string] & {
            creator_: string;
        }>;
        getMigrator(overrides?: CallOverrides): Promise<[string] & {
            migrator_: string;
        }>;
        getOwner(overrides?: CallOverrides): Promise<[string] & {
            owner_: string;
        }>;
        getTrackedAssets(overrides?: CallOverrides): Promise<[string[]] & {
            trackedAssets_: string[];
        }>;
        getVaultLib(overrides?: CallOverrides): Promise<[string] & {
            vaultLib_: string;
        }>;
        init(_owner: PromiseOrValue<string>, _accessor: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            isTrackedAsset_: boolean;
        }>;
        mintShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        name(overrides?: CallOverrides): Promise<[string]>;
        proxiableUUID(overrides?: CallOverrides): Promise<[string] & {
            uuid_: string;
        }>;
        removeTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAccessor(_nextAccessor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMigrator(_nextMigrator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVaultLib(_nextVaultLib: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        symbol(overrides?: CallOverrides): Promise<[string] & {
            symbol_: string;
        }>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transfer(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferShares(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawAssetTo(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    addTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approveAssetSpender(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    burnShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callOnContract(_contract: PromiseOrValue<string>, _callData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    canMigrate(_who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    decimals(overrides?: CallOverrides): Promise<number>;
    getAccessor(overrides?: CallOverrides): Promise<string>;
    getCreator(overrides?: CallOverrides): Promise<string>;
    getMigrator(overrides?: CallOverrides): Promise<string>;
    getOwner(overrides?: CallOverrides): Promise<string>;
    getTrackedAssets(overrides?: CallOverrides): Promise<string[]>;
    getVaultLib(overrides?: CallOverrides): Promise<string>;
    init(_owner: PromiseOrValue<string>, _accessor: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    mintShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    name(overrides?: CallOverrides): Promise<string>;
    proxiableUUID(overrides?: CallOverrides): Promise<string>;
    removeTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAccessor(_nextAccessor: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMigrator(_nextMigrator: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVaultLib(_nextVaultLib: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    symbol(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferShares(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawAssetTo(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        addTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        approveAssetSpender(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burnShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        callOnContract(_contract: PromiseOrValue<string>, _callData: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        canMigrate(_who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        decimals(overrides?: CallOverrides): Promise<number>;
        getAccessor(overrides?: CallOverrides): Promise<string>;
        getCreator(overrides?: CallOverrides): Promise<string>;
        getMigrator(overrides?: CallOverrides): Promise<string>;
        getOwner(overrides?: CallOverrides): Promise<string>;
        getTrackedAssets(overrides?: CallOverrides): Promise<string[]>;
        getVaultLib(overrides?: CallOverrides): Promise<string>;
        init(_owner: PromiseOrValue<string>, _accessor: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        mintShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        name(overrides?: CallOverrides): Promise<string>;
        proxiableUUID(overrides?: CallOverrides): Promise<string>;
        removeTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setAccessor(_nextAccessor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setMigrator(_nextMigrator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setVaultLib(_nextVaultLib: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        symbol(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferShares(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        withdrawAssetTo(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'AccessorSet(address,address)'(prevAccessor?: null, nextAccessor?: null): AccessorSetEventFilter;
        AccessorSet(prevAccessor?: null, nextAccessor?: null): AccessorSetEventFilter;
        '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;
        'AssetWithdrawn(address,address,uint256)'(asset?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null, amount?: null): AssetWithdrawnEventFilter;
        AssetWithdrawn(asset?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null, amount?: null): AssetWithdrawnEventFilter;
        'MigratorSet(address,address)'(prevMigrator?: null, nextMigrator?: null): MigratorSetEventFilter;
        MigratorSet(prevMigrator?: null, nextMigrator?: null): MigratorSetEventFilter;
        'OwnerSet(address,address)'(prevOwner?: null, nextOwner?: null): OwnerSetEventFilter;
        OwnerSet(prevOwner?: null, nextOwner?: null): OwnerSetEventFilter;
        'TrackedAssetAdded(address)'(asset?: null): TrackedAssetAddedEventFilter;
        TrackedAssetAdded(asset?: null): TrackedAssetAddedEventFilter;
        'TrackedAssetRemoved(address)'(asset?: null): TrackedAssetRemovedEventFilter;
        TrackedAssetRemoved(asset?: null): TrackedAssetRemovedEventFilter;
        '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;
        'VaultLibSet(address,address)'(prevVaultLib?: null, nextVaultLib?: null): VaultLibSetEventFilter;
        VaultLibSet(prevVaultLib?: null, nextVaultLib?: null): VaultLibSetEventFilter;
    };
    estimateGas: {
        addTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approveAssetSpender(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        burnShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        callOnContract(_contract: PromiseOrValue<string>, _callData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        canMigrate(_who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        getAccessor(overrides?: CallOverrides): Promise<BigNumber>;
        getCreator(overrides?: CallOverrides): Promise<BigNumber>;
        getMigrator(overrides?: CallOverrides): Promise<BigNumber>;
        getOwner(overrides?: CallOverrides): Promise<BigNumber>;
        getTrackedAssets(overrides?: CallOverrides): Promise<BigNumber>;
        getVaultLib(overrides?: CallOverrides): Promise<BigNumber>;
        init(_owner: PromiseOrValue<string>, _accessor: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        mintShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        proxiableUUID(overrides?: CallOverrides): Promise<BigNumber>;
        removeTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAccessor(_nextAccessor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMigrator(_nextMigrator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVaultLib(_nextVaultLib: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferShares(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawAssetTo(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        addTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approveAssetSpender(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        burnShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        callOnContract(_contract: PromiseOrValue<string>, _callData: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        canMigrate(_who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAccessor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCreator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMigrator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTrackedAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVaultLib(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        init(_owner: PromiseOrValue<string>, _accessor: PromiseOrValue<string>, _fundName: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isTrackedAsset(_asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mintShares(_target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proxiableUUID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        removeTrackedAsset(_asset: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAccessor(_nextAccessor: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMigrator(_nextMigrator: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVaultLib(_nextVaultLib: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<string>, arg2: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferShares(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawAssetTo(_asset: PromiseOrValue<string>, _target: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
