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 SpiceFinanceNftVaultInterface extends utils.Interface {
    functions: {
        'ASSET_RECEIVER_ROLE()': FunctionFragment;
        'CREATOR_ROLE()': FunctionFragment;
        'DEFAULT_ADMIN_ROLE()': FunctionFragment;
        'SPICE_ROLE()': FunctionFragment;
        'STRATEGIST_ROLE()': FunctionFragment;
        'VAULT_ROLE()': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'asset()': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'contractURI()': FunctionFragment;
        'convertToAssets(uint256)': FunctionFragment;
        'convertToShares(uint256)': FunctionFragment;
        'deposit(address,uint256,uint256)': FunctionFragment;
        'deposit(uint256,uint256)': FunctionFragment;
        'dev()': FunctionFragment;
        'feeRecipient()': FunctionFragment;
        'getApproved(uint256)': FunctionFragment;
        'getRoleAdmin(bytes32)': FunctionFragment;
        'getRoleMember(bytes32,uint256)': FunctionFragment;
        'getRoleMemberCount(bytes32)': FunctionFragment;
        'grantRole(bytes32,address)': FunctionFragment;
        'hasRole(bytes32,address)': FunctionFragment;
        'initialize(string,string,address,uint256,uint256,address[],address,address,address,address)': FunctionFragment;
        'isApprovedForAll(address,address)': FunctionFragment;
        'maxDeposit(address)': FunctionFragment;
        'maxMint(address)': FunctionFragment;
        'maxRedeem(address)': FunctionFragment;
        'maxSupply()': FunctionFragment;
        'maxWithdraw(address)': FunctionFragment;
        'mint(address,uint256,uint256)': FunctionFragment;
        'mint(uint256,uint256)': FunctionFragment;
        'mintPrice()': FunctionFragment;
        'multicall(bytes[])': FunctionFragment;
        'multisig()': FunctionFragment;
        'name()': FunctionFragment;
        'owner()': FunctionFragment;
        'ownerOf(uint256)': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'previewDeposit(uint256)': FunctionFragment;
        'previewMint(uint256)': FunctionFragment;
        'previewRedeem(uint256)': FunctionFragment;
        'previewWithdraw(uint256)': FunctionFragment;
        'redeem(uint256,uint256,address)': FunctionFragment;
        'redeem(address,uint256,uint256)': FunctionFragment;
        'renounceRole(bytes32,address)': FunctionFragment;
        'revokeRole(bytes32,address)': FunctionFragment;
        'safeTransferFrom(address,address,uint256)': FunctionFragment;
        'safeTransferFrom(address,address,uint256,bytes)': FunctionFragment;
        'setApprovalForAll(address,bool)': FunctionFragment;
        'setBaseURI(string)': FunctionFragment;
        'setDev(address)': FunctionFragment;
        'setFeeRecipient(address)': FunctionFragment;
        'setMultisig(address)': FunctionFragment;
        'setPreviewURI(string)': FunctionFragment;
        'setVerified(bool)': FunctionFragment;
        'setWithdrawable(bool)': FunctionFragment;
        'setWithdrawalFees(uint256)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'symbol()': FunctionFragment;
        'tokenShares(uint256)': FunctionFragment;
        'tokenURI(uint256)': FunctionFragment;
        'totalAssets()': FunctionFragment;
        'totalShares()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'unpause()': FunctionFragment;
        'verified()': FunctionFragment;
        'withdraw(uint256,uint256,address)': FunctionFragment;
        'withdraw(address,uint256,uint256)': FunctionFragment;
        'withdrawalFees()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'ASSET_RECEIVER_ROLE' | 'CREATOR_ROLE' | 'DEFAULT_ADMIN_ROLE' | 'SPICE_ROLE' | 'STRATEGIST_ROLE' | 'VAULT_ROLE' | 'approve' | 'asset' | 'balanceOf' | 'contractURI' | 'convertToAssets' | 'convertToShares' | 'deposit(address,uint256,uint256)' | 'deposit(uint256,uint256)' | 'dev' | 'feeRecipient' | 'getApproved' | 'getRoleAdmin' | 'getRoleMember' | 'getRoleMemberCount' | 'grantRole' | 'hasRole' | 'initialize' | 'isApprovedForAll' | 'maxDeposit' | 'maxMint' | 'maxRedeem' | 'maxSupply' | 'maxWithdraw' | 'mint(address,uint256,uint256)' | 'mint(uint256,uint256)' | 'mintPrice' | 'multicall' | 'multisig' | 'name' | 'owner' | 'ownerOf' | 'pause' | 'paused' | 'previewDeposit' | 'previewMint' | 'previewRedeem' | 'previewWithdraw' | 'redeem(uint256,uint256,address)' | 'redeem(address,uint256,uint256)' | 'renounceRole' | 'revokeRole' | 'safeTransferFrom(address,address,uint256)' | 'safeTransferFrom(address,address,uint256,bytes)' | 'setApprovalForAll' | 'setBaseURI' | 'setDev' | 'setFeeRecipient' | 'setMultisig' | 'setPreviewURI' | 'setVerified' | 'setWithdrawable' | 'setWithdrawalFees' | 'supportsInterface' | 'symbol' | 'tokenShares' | 'tokenURI' | 'totalAssets' | 'totalShares' | 'totalSupply' | 'transferFrom' | 'unpause' | 'verified' | 'withdraw(uint256,uint256,address)' | 'withdraw(address,uint256,uint256)' | 'withdrawalFees'): FunctionFragment;
    encodeFunctionData(functionFragment: 'ASSET_RECEIVER_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'CREATOR_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SPICE_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'STRATEGIST_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'VAULT_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'asset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'contractURI', values?: undefined): string;
    encodeFunctionData(functionFragment: 'convertToAssets', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'convertToShares', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deposit(address,uint256,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deposit(uint256,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'dev', values?: undefined): string;
    encodeFunctionData(functionFragment: 'feeRecipient', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getApproved', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getRoleMember', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRoleMemberCount', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>[],
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'isApprovedForAll', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxDeposit', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxMint', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxRedeem', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'maxSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxWithdraw', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'mint(address,uint256,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'mint(uint256,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'mintPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'multicall', values: [PromiseOrValue<BytesLike>[]]): string;
    encodeFunctionData(functionFragment: 'multisig', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ownerOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'previewDeposit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'previewMint', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'previewRedeem', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'previewWithdraw', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'redeem(uint256,uint256,address)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'redeem(address,uint256,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [PromiseOrValue<BytesLike>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'setApprovalForAll', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setBaseURI', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setDev', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setFeeRecipient', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setMultisig', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setPreviewURI', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setVerified', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setWithdrawable', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setWithdrawalFees', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'tokenShares', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'tokenURI', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'totalAssets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalShares', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'verified', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw(uint256,uint256,address)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw(address,uint256,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawalFees', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'ASSET_RECEIVER_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'CREATOR_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SPICE_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'STRATEGIST_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'VAULT_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'asset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'contractURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'convertToAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'convertToShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit(address,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit(uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'dev', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeRecipient', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getApproved', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleMember', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleMemberCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isApprovedForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxMint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxRedeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mint(address,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mint(uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mintPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'multicall', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'multisig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ownerOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewMint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewRedeem', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'redeem(uint256,uint256,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'redeem(address,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setApprovalForAll', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBaseURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDev', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeRecipient', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMultisig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPreviewURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setVerified', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setWithdrawable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setWithdrawalFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'tokenURI', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalAssets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalShares', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'verified', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw(uint256,uint256,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw(address,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawalFees', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'ApprovalForAll(address,address,bool)': EventFragment;
        'BatchMetadataUpdate(uint256,uint256)': EventFragment;
        'Deposit(address,uint256,uint256,uint256)': EventFragment;
        'DevUpdated(address)': EventFragment;
        'FeeRecipientUpdated(address)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'MetadataUpdate(uint256)': EventFragment;
        'MultisigUpdated(address)': EventFragment;
        'Paused(address)': EventFragment;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': EventFragment;
        'RoleGranted(bytes32,address,address)': EventFragment;
        'RoleRevoked(bytes32,address,address)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'Unpaused(address)': EventFragment;
        'Withdraw(address,uint256,address,uint256,uint256)': EventFragment;
        'WithdrawalFeeRateUpdated(uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ApprovalForAll'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BatchMetadataUpdate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DevUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeeRecipientUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MetadataUpdate'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MultisigUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleAdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleGranted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RoleRevoked'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawalFeeRateUpdated'): EventFragment;
}
export interface ApprovalEventObject {
    owner: string;
    approved: string;
    tokenId: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface ApprovalForAllEventObject {
    owner: string;
    operator: string;
    approved: boolean;
}
export declare type ApprovalForAllEvent = TypedEvent<[string, string, boolean], ApprovalForAllEventObject>;
export declare type ApprovalForAllEventFilter = TypedEventFilter<ApprovalForAllEvent>;
export interface BatchMetadataUpdateEventObject {
    _fromTokenId: BigNumber;
    _toTokenId: BigNumber;
}
export declare type BatchMetadataUpdateEvent = TypedEvent<[BigNumber, BigNumber], BatchMetadataUpdateEventObject>;
export declare type BatchMetadataUpdateEventFilter = TypedEventFilter<BatchMetadataUpdateEvent>;
export interface DepositEventObject {
    sender: string;
    tokenId: BigNumber;
    assets: BigNumber;
    shares: BigNumber;
}
export declare type DepositEvent = TypedEvent<[string, BigNumber, BigNumber, BigNumber], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface DevUpdatedEventObject {
    dev: string;
}
export declare type DevUpdatedEvent = TypedEvent<[string], DevUpdatedEventObject>;
export declare type DevUpdatedEventFilter = TypedEventFilter<DevUpdatedEvent>;
export interface FeeRecipientUpdatedEventObject {
    feeRecipient: string;
}
export declare type FeeRecipientUpdatedEvent = TypedEvent<[string], FeeRecipientUpdatedEventObject>;
export declare type FeeRecipientUpdatedEventFilter = TypedEventFilter<FeeRecipientUpdatedEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface MetadataUpdateEventObject {
    _tokenId: BigNumber;
}
export declare type MetadataUpdateEvent = TypedEvent<[BigNumber], MetadataUpdateEventObject>;
export declare type MetadataUpdateEventFilter = TypedEventFilter<MetadataUpdateEvent>;
export interface MultisigUpdatedEventObject {
    multisig: string;
}
export declare type MultisigUpdatedEvent = TypedEvent<[string], MultisigUpdatedEventObject>;
export declare type MultisigUpdatedEventFilter = TypedEventFilter<MultisigUpdatedEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface RoleAdminChangedEventObject {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}
export declare type RoleAdminChangedEvent = TypedEvent<[string, string, string], RoleAdminChangedEventObject>;
export declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
export interface RoleGrantedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleGrantedEvent = TypedEvent<[string, string, string], RoleGrantedEventObject>;
export declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export interface RoleRevokedEventObject {
    role: string;
    account: string;
    sender: string;
}
export declare type RoleRevokedEvent = TypedEvent<[string, string, string], RoleRevokedEventObject>;
export declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    tokenId: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface WithdrawEventObject {
    sender: string;
    tokenId: BigNumber;
    receiver: string;
    assets: BigNumber;
    shares: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[string, BigNumber, string, BigNumber, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface WithdrawalFeeRateUpdatedEventObject {
    withdrawalFees: BigNumber;
}
export declare type WithdrawalFeeRateUpdatedEvent = TypedEvent<[BigNumber], WithdrawalFeeRateUpdatedEventObject>;
export declare type WithdrawalFeeRateUpdatedEventFilter = TypedEventFilter<WithdrawalFeeRateUpdatedEvent>;
export interface SpiceFinanceNftVault extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: SpiceFinanceNftVaultInterface;
    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: {
        ASSET_RECEIVER_ROLE(overrides?: CallOverrides): Promise<[string]>;
        CREATOR_ROLE(overrides?: CallOverrides): Promise<[string]>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        SPICE_ROLE(overrides?: CallOverrides): Promise<[string]>;
        STRATEGIST_ROLE(overrides?: CallOverrides): Promise<[string]>;
        VAULT_ROLE(overrides?: CallOverrides): Promise<[string]>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        asset(overrides?: CallOverrides): Promise<[string]>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        contractURI(overrides?: CallOverrides): Promise<[string]>;
        convertToAssets(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        convertToShares(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        'deposit(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, minShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'deposit(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        dev(overrides?: CallOverrides): Promise<[string]>;
        feeRecipient(overrides?: CallOverrides): Promise<[string]>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[BigNumber]>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, __asset: PromiseOrValue<string>, _mintPrice: PromiseOrValue<BigNumberish>, _maxSupply: PromiseOrValue<BigNumberish>, _vaults: PromiseOrValue<string>[], _creator: PromiseOrValue<string>, _dev: PromiseOrValue<string>, _multisig: PromiseOrValue<string>, _feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        maxDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        maxMint(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        maxRedeem(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        maxSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        maxWithdraw(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        'mint(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, maxAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'mint(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        mintPrice(overrides?: CallOverrides): Promise<[BigNumber]>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        multisig(overrides?: CallOverrides): Promise<[string]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        previewDeposit(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        previewMint(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        previewRedeem(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        previewWithdraw(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        'redeem(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'redeem(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, minAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setBaseURI(baseUri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDev(_dev: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFeeRecipient(_feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMultisig(_multisig: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPreviewURI(previewUri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setVerified(verified_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setWithdrawable(withdrawable_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setWithdrawalFees(withdrawalFees_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        tokenShares(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        totalAssets(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalShares(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        verified(overrides?: CallOverrides): Promise<[boolean]>;
        'withdraw(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'withdraw(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, maxShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawalFees(overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    ASSET_RECEIVER_ROLE(overrides?: CallOverrides): Promise<string>;
    CREATOR_ROLE(overrides?: CallOverrides): Promise<string>;
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    SPICE_ROLE(overrides?: CallOverrides): Promise<string>;
    STRATEGIST_ROLE(overrides?: CallOverrides): Promise<string>;
    VAULT_ROLE(overrides?: CallOverrides): Promise<string>;
    approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    asset(overrides?: CallOverrides): Promise<string>;
    balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    contractURI(overrides?: CallOverrides): Promise<string>;
    convertToAssets(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    convertToShares(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    'deposit(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, minShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'deposit(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    dev(overrides?: CallOverrides): Promise<string>;
    feeRecipient(overrides?: CallOverrides): Promise<string>;
    getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
    getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
    grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, __asset: PromiseOrValue<string>, _mintPrice: PromiseOrValue<BigNumberish>, _maxSupply: PromiseOrValue<BigNumberish>, _vaults: PromiseOrValue<string>[], _creator: PromiseOrValue<string>, _dev: PromiseOrValue<string>, _multisig: PromiseOrValue<string>, _feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    maxDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxMint(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxRedeem(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxSupply(overrides?: CallOverrides): Promise<BigNumber>;
    maxWithdraw(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    'mint(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, maxAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'mint(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    mintPrice(overrides?: CallOverrides): Promise<BigNumber>;
    multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    multisig(overrides?: CallOverrides): Promise<string>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    previewDeposit(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    previewMint(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    previewRedeem(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    previewWithdraw(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    'redeem(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'redeem(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, minAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setBaseURI(baseUri: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDev(_dev: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFeeRecipient(_feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMultisig(_multisig: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPreviewURI(previewUri: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setVerified(verified_: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setWithdrawable(withdrawable_: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setWithdrawalFees(withdrawalFees_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    tokenShares(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
    totalShares(overrides?: CallOverrides): Promise<BigNumber>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    verified(overrides?: CallOverrides): Promise<boolean>;
    'withdraw(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'withdraw(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, maxShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawalFees(overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        ASSET_RECEIVER_ROLE(overrides?: CallOverrides): Promise<string>;
        CREATOR_ROLE(overrides?: CallOverrides): Promise<string>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        SPICE_ROLE(overrides?: CallOverrides): Promise<string>;
        STRATEGIST_ROLE(overrides?: CallOverrides): Promise<string>;
        VAULT_ROLE(overrides?: CallOverrides): Promise<string>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        asset(overrides?: CallOverrides): Promise<string>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        contractURI(overrides?: CallOverrides): Promise<string>;
        convertToAssets(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        convertToShares(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, minShares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        dev(overrides?: CallOverrides): Promise<string>;
        feeRecipient(overrides?: CallOverrides): Promise<string>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, __asset: PromiseOrValue<string>, _mintPrice: PromiseOrValue<BigNumberish>, _maxSupply: PromiseOrValue<BigNumberish>, _vaults: PromiseOrValue<string>[], _creator: PromiseOrValue<string>, _dev: PromiseOrValue<string>, _multisig: PromiseOrValue<string>, _feeRecipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        maxDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxMint(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxRedeem(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxSupply(overrides?: CallOverrides): Promise<BigNumber>;
        maxWithdraw(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'mint(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, maxAssets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'mint(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mintPrice(overrides?: CallOverrides): Promise<BigNumber>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<string[]>;
        multisig(overrides?: CallOverrides): Promise<string>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        previewDeposit(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewMint(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewRedeem(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewWithdraw(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'redeem(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'redeem(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, minAssets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setBaseURI(baseUri: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDev(_dev: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setFeeRecipient(_feeRecipient: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setMultisig(_multisig: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setPreviewURI(previewUri: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setVerified(verified_: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setWithdrawable(withdrawable_: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setWithdrawalFees(withdrawalFees_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        tokenShares(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        totalShares(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        unpause(overrides?: CallOverrides): Promise<void>;
        verified(overrides?: CallOverrides): Promise<boolean>;
        'withdraw(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'withdraw(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, maxShares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdrawalFees(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'Approval(address,address,uint256)'(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        Approval(owner?: PromiseOrValue<string> | null, approved?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): ApprovalEventFilter;
        'ApprovalForAll(address,address,bool)'(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        ApprovalForAll(owner?: PromiseOrValue<string> | null, operator?: PromiseOrValue<string> | null, approved?: null): ApprovalForAllEventFilter;
        'BatchMetadataUpdate(uint256,uint256)'(_fromTokenId?: null, _toTokenId?: null): BatchMetadataUpdateEventFilter;
        BatchMetadataUpdate(_fromTokenId?: null, _toTokenId?: null): BatchMetadataUpdateEventFilter;
        'Deposit(address,uint256,uint256,uint256)'(sender?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, assets?: null, shares?: null): DepositEventFilter;
        Deposit(sender?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, assets?: null, shares?: null): DepositEventFilter;
        'DevUpdated(address)'(dev?: null): DevUpdatedEventFilter;
        DevUpdated(dev?: null): DevUpdatedEventFilter;
        'FeeRecipientUpdated(address)'(feeRecipient?: null): FeeRecipientUpdatedEventFilter;
        FeeRecipientUpdated(feeRecipient?: null): FeeRecipientUpdatedEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'MetadataUpdate(uint256)'(_tokenId?: null): MetadataUpdateEventFilter;
        MetadataUpdate(_tokenId?: null): MetadataUpdateEventFilter;
        'MultisigUpdated(address)'(multisig?: null): MultisigUpdatedEventFilter;
        MultisigUpdated(multisig?: null): MultisigUpdatedEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'RoleAdminChanged(bytes32,bytes32,bytes32)'(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: PromiseOrValue<BytesLike> | null, previousAdminRole?: PromiseOrValue<BytesLike> | null, newAdminRole?: PromiseOrValue<BytesLike> | null): RoleAdminChangedEventFilter;
        'RoleGranted(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        RoleGranted(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleGrantedEventFilter;
        'RoleRevoked(bytes32,address,address)'(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        RoleRevoked(role?: PromiseOrValue<BytesLike> | null, account?: PromiseOrValue<string> | null, sender?: PromiseOrValue<string> | null): RoleRevokedEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null): TransferEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
        'Withdraw(address,uint256,address,uint256,uint256)'(sender?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, assets?: null, shares?: null): WithdrawEventFilter;
        Withdraw(sender?: PromiseOrValue<string> | null, tokenId?: PromiseOrValue<BigNumberish> | null, receiver?: PromiseOrValue<string> | null, assets?: null, shares?: null): WithdrawEventFilter;
        'WithdrawalFeeRateUpdated(uint256)'(withdrawalFees?: null): WithdrawalFeeRateUpdatedEventFilter;
        WithdrawalFeeRateUpdated(withdrawalFees?: null): WithdrawalFeeRateUpdatedEventFilter;
    };
    estimateGas: {
        ASSET_RECEIVER_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        CREATOR_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        SPICE_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        STRATEGIST_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        VAULT_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        asset(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        contractURI(overrides?: CallOverrides): Promise<BigNumber>;
        convertToAssets(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        convertToShares(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'deposit(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, minShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'deposit(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        dev(overrides?: CallOverrides): Promise<BigNumber>;
        feeRecipient(overrides?: CallOverrides): Promise<BigNumber>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, __asset: PromiseOrValue<string>, _mintPrice: PromiseOrValue<BigNumberish>, _maxSupply: PromiseOrValue<BigNumberish>, _vaults: PromiseOrValue<string>[], _creator: PromiseOrValue<string>, _dev: PromiseOrValue<string>, _multisig: PromiseOrValue<string>, _feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxMint(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxRedeem(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxSupply(overrides?: CallOverrides): Promise<BigNumber>;
        maxWithdraw(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'mint(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, maxAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'mint(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        mintPrice(overrides?: CallOverrides): Promise<BigNumber>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        multisig(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        previewDeposit(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewMint(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewRedeem(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        previewWithdraw(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'redeem(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'redeem(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, minAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setBaseURI(baseUri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDev(_dev: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFeeRecipient(_feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMultisig(_multisig: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPreviewURI(previewUri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setVerified(verified_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setWithdrawable(withdrawable_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setWithdrawalFees(withdrawalFees_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        tokenShares(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalAssets(overrides?: CallOverrides): Promise<BigNumber>;
        totalShares(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        verified(overrides?: CallOverrides): Promise<BigNumber>;
        'withdraw(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'withdraw(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, maxShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawalFees(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        ASSET_RECEIVER_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        CREATOR_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SPICE_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        STRATEGIST_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        VAULT_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        asset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        contractURI(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convertToAssets(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        convertToShares(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'deposit(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, minShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'deposit(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        dev(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feeRecipient(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getApproved(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMember(role: PromiseOrValue<BytesLike>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMemberCount(role: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, __asset: PromiseOrValue<string>, _mintPrice: PromiseOrValue<BigNumberish>, _maxSupply: PromiseOrValue<BigNumberish>, _vaults: PromiseOrValue<string>[], _creator: PromiseOrValue<string>, _dev: PromiseOrValue<string>, _multisig: PromiseOrValue<string>, _feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isApprovedForAll(owner: PromiseOrValue<string>, operator: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxDeposit(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxMint(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxRedeem(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxWithdraw(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'mint(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, maxAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'mint(uint256,uint256)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        mintPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        multicall(data: PromiseOrValue<BytesLike>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        multisig(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ownerOf(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewDeposit(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewMint(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewRedeem(shares: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        previewWithdraw(assets: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'redeem(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, shares: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'redeem(address,uint256,uint256)'(vault: PromiseOrValue<string>, shares: PromiseOrValue<BigNumberish>, minAssets: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: PromiseOrValue<BytesLike>, account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'safeTransferFrom(address,address,uint256,bytes)'(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setApprovalForAll(operator: PromiseOrValue<string>, approved: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setBaseURI(baseUri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDev(_dev: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFeeRecipient(_feeRecipient: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMultisig(_multisig: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPreviewURI(previewUri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setVerified(verified_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setWithdrawable(withdrawable_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setWithdrawalFees(withdrawalFees_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenShares(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenURI(tokenId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalAssets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalShares(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferFrom(from: PromiseOrValue<string>, to: PromiseOrValue<string>, tokenId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        verified(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'withdraw(uint256,uint256,address)'(tokenId: PromiseOrValue<BigNumberish>, assets: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'withdraw(address,uint256,uint256)'(vault: PromiseOrValue<string>, assets: PromiseOrValue<BigNumberish>, maxShares: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawalFees(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
