declare class DzAssetMgr extends DzBase {

    /* Properties */
    None: number;
    WholeWord: number;
    RegExp: number;
    NativeScenes: number;
    NativeScripts: number;
    PoserFigures: number;
    PoserPoses: number;
    PoserProps: number;
    PoserHair: number;
    PoserFaces: number;
    PoserLights: number;
    PoserCameras: number;
    PoserHands: number;
    PoserMaterials: number;
    PoserScenes: number;
    ImportFiles: number;
    AllNativeFiles: number;
    NoNativeFilesMask: number;
    AllPoserFiles: number;
    NoPoserFilesMask: number;
    AllFiles: number;
    DefaultOptions: number;

    /* Methods */
    categoryUpdate(idPath: QVariant[]): void;
    containerUpdate(idPath: QVariant[]): void;
    markFoldersContainingNewContentChanged(): void;
    showLargeIconsChanged(): void;
    showExtensionsChanged(): void;
    showAssetToolTipChanged(): void;
    itemsPerPageChanged(newPerPage: number): void;
    typeListChanged(): void;
    compatibilityBaseListChanged(): void;
    basePathsChanged(): void;
    storeListChanged(): void;
    getPoserDirs(): DzTopLevelAssetContainer;
    getContentDirs(): DzTopLevelAssetContainer;
    getImportDirs(): DzTopLevelAssetContainer;
    getProducts(): DzTopLevelAssetContainer;
    getCategories(): DzCategoryAssetContainer;
    saveUserDBData(directory: QString, prefix: QString): DzError;
    getMetaHost(): QString;
    setCompatibilityBase(uri: QString, compatibility: DzDBCompatibilityBaseTable, isVendor: boolean): boolean;
    getStudioDirID(): QVariant;
    getImportDirID(): QVariant;
    getPoserDirID(): QVariant;
    getCategoriesID(): QVariant;
    getProductsID(): QVariant;
    setTopLevelPoserNameOnContainer(name: QString, cont: DzFolderAssetContainer): void;
    normalizePath(type: QString, relative: boolean): QString;
    normalizePath(type: QString, relative: boolean): QString;
    escapeSearchTerm(searchTerm: QString): QString;
    getRealPathCasing(path: QString, search: QString): QString;
    getStudioExcludes(): String[];
    updateUserMetadata(): void;
    emitCategoryChanged(idPath: QVariant[]): void;
    markCategoriesChanged(): void;
    markProductsChanged(): void;
    showLargeIcons(): boolean;
    showExtensions(): boolean;
    showAssetToolTip(): boolean;
    getNumMaxItemsPerPage(): number;
    getMaxChunkSize(): number;
    getMarkFoldersContainingNewContent(): boolean;
    setMarkFoldersContainingNewContent(onOff: boolean): void;
    setShowLargeIcons(onOff: boolean): void;
    setShowExtensions(onOff: boolean): void;
    setShowAssetToolTip(onOff: boolean): void;
    setMaxItemsPerPage(maxNum: number): void;
    setMaxChunkSize(maxSize: number): void;
    setMaxFileSearchResultSize(maxSize: number): void;
    refreshTypes(): void;
    getTypes(): String[];
    findTypeID(type: QString, create: boolean, defaultLoad: boolean): number;
    findTypeID(type: QString, create: boolean, defaultLoad: boolean): number;
    findTypeID(type: QString, create: boolean, defaultLoad: boolean): number;
    createType(type: QString, defaultLoad: boolean): number;
    getType(id: number): QString;
    findTypeRowID(): any; // TODO ;
    findTypeRowID(): any; // TODO ;
    findTypeRowID(): any; // TODO ;
    createTypeWithRowID(): any; // TODO ;
    getTypeByRowID(): any; // TODO ;
    getAudiences(): String[];
    findAudienceID(audience: QString): number;
    getAudience(id: number): QString;
    getRootCategoryStrings(): String[];
    refreshCategoryRoots(): void;
    findCompatibilityBaseTable(plat: QString, create: boolean): DzDBCompatibilityBaseTable;
    findCompatibilityBaseTable(plat: QString, create: boolean): DzDBCompatibilityBaseTable;
    findCompatibilityBaseID(plat: QString, create: boolean): number;
    findCompatibilityBaseID(plat: QString, create: boolean): number;
    createCompatibilityBase(plat: QString): number;
    getCompatibilityBase(id: number): QString;
    findCompatibilityBaseRowID(): any; // TODO ;
    findCompatibilityBaseRowID(): any; // TODO ;
    createCompatibilityBaseWithRowID(): any; // TODO ;
    getCompatibilityBaseByRowID(): any; // TODO ;
    refreshBasePaths(): void;
    getBasePaths(): String[];
    findBasePathID(basePath: QString, create: boolean): number;
    findBasePathID(basePath: QString, create: boolean): number;
    createBasePath(basePath: QString): number;
    getBasePath(id: number): QString;
    removeAndCleanBasePath(id: number): void;
    findBasePathRowID(): any; // TODO ;
    findBasePathRowID(): any; // TODO ;
    createBasePathWithRowID(): any; // TODO ;
    getBasePathByRowID(): any; // TODO ;
    removeAndCleanBasePathByRowID(): any; // TODO ;
    getUnMappedBasePaths(): String[];
    refreshStores(): void;
    getStoresIDs(): String[];
    getStoreUrl(storeID: QString): QString;
    getStoreToken(storeID: QString): QString;
    createStore(storeID: QString, token: QString, url: QString): boolean;
    stopDBSearch(): void;
    stopProductSyncThread(): void;
    stopFileSearch(): void;
    stopFileScan(): void;
    stopSearchForFileAssociations(): void;
    stopStoreSearch(): void;
    stopSearchForProducts(): void;
    stopAllSearches(): void;
    //searchForFileAssociations(tab: DzDBContentTable, DzSearchContainerPtr: \/): boolean;
    //searchForFileAssociations(tab: DzDBContentTable, DzSearchContainerPtr: \/): boolean;
    //searchForFileAssociations(tab: DzDBContentTable, DzSearchContainerPtr: \/): boolean;
    scanFiles(opts: number, markFound: boolean, addToUnassigned: boolean, onlyNewToUnassigned: boolean, finishObj: QObject, progress: QObject): void;
    scanFiles(opts: number, markFound: boolean, addToUnassigned: boolean, onlyNewToUnassigned: boolean, finishObj: QObject, progress: QObject): void;
    scanFiles(opts: number, markFound: boolean, addToUnassigned: boolean, onlyNewToUnassigned: boolean, finishObj: QObject, progress: QObject): void;
    searchFiles(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchFiles(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchFiles(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    searchDB(str: QString, opts: number, finishObj: QObject): DzSearchContainerPtr;
    searchDB(str: QString, categories: String[], compatibilityBases: String[]): DzSearchContainerPtr;
    productSearchDB(str: QString, categories: String[]): DzProductHolderContainerPtr;
    productSearchDB(str: QString, categories: String[]): DzProductHolderContainerPtr;
    productSearchDB(str: QString, categories: String[]): DzProductHolderContainerPtr;
    storeSearch(str: QString, types: String[]): DzProductHolderContainerPtr;
    storeSearch(str: QString, types: String[]): DzProductHolderContainerPtr;
    storeSearch(str: QString, types: String[]): DzProductHolderContainerPtr;
    getDatabaseFilePath(): QString;
    vacuumDatabase(): boolean;
    markAllContentSeen(notify: boolean): void;
    markAllContentSeen(notify: boolean): void;
    syncFileMetadata(relativeFilePaths: String[], prepend: boolean): void;
    syncFileMetadata(relativeFilePaths: String[], prepend: boolean): void;
    //syncProductMetadata(productTables: DzDBObjectBasePtr[], prepend: boolean): void;
    //syncProductMetadata(productTables: DzDBObjectBasePtr[], prepend: boolean): void;
    prependToMetadataSyncList(productGuid: QString): void;
    prependToMetadataSyncList(productGuidList: String[]): void;
    prependToMetadataSyncList(productGuid: QString): void;
    prependToMetadataSyncList(productGuidList: String[]): void;
    processSyncList(): void;
    processDBMetaFile(productRelativePath: QString, runSilent: boolean, isVendor: boolean, markNew: boolean): String[];
    processDBMetaFile(productRelativePath: QString, runSilent: boolean, isVendor: boolean, markNew: boolean): String[];
    processDBMetaFile(productRelativePath: QString, runSilent: boolean, isVendor: boolean, markNew: boolean): String[];
    processDBMetaFile(productRelativePath: QString, runSilent: boolean, isVendor: boolean, markNew: boolean): String[];
    processDBMetaFileNoEmit(): any; // TODO ;
    processDBMetaFileNoEmit(): any; // TODO ;
    processDBMetaFileNoEmit(): any; // TODO ;
    processDBMetaFileNoEmit(): any; // TODO ;
    queueDBMetaFile(productRelativePath: QString): void;
    getDBMetaFileQueue(): String[];
    processDBMetaFileQueue(): void;
    checkforNewMetadataScripts(): any; // TODO ;
    clearDBMetaFileQueue(): void;
    reimportDBMetaFiles(): void;
    getBaseAndRelativePath(absolutePath: QString, rPath: QString, basePath: QString): void;
    getAssetUriForNode(node: DzNode): QString;
    getCompatibilityBasePathForNode(node: DzNode): QString;
    getRelativePaths(absolutePath: QString, useImportFolders: boolean): String[];
    getTypeForNode(node: DzNode): QString;
    getTypeForContentFile(fullPath: QString): QString;
    getTypeForContentFile(fullPath: QString, type: QString): boolean;
    isClothingType(type: QString): boolean;
    isFigureType(type: QString): boolean;
    isHairType(type: QString): boolean;
    isPresetType(type: QString): boolean;
    isPresetForFigureType(type: QString): boolean;
    isPropType(type: QString): boolean;
    isFollowingType(type: QString): boolean;
    isReplaceableType(type: QString): boolean;
    isNeedsBaseFigureType(type: QString): boolean;
    getFirstCategory(): any; // TODO ;
    findAssetPathFromShortFilename(): any; // TODO ;
    findCategoryAndAssetFromShortFilename(): any; // TODO ;
    setCMSOptions(): any; // TODO ;
    getCMSOptions(): any; // TODO ;
    stopCMS(): any; // TODO ;
    stopCMS(): any; // TODO ;
    startCMS(): any; // TODO ;
    canStartAndStopCMS(): any; // TODO ;
    isConnectedToCMS(): any; // TODO ;
    convertFromValentina(): any; // TODO ;
}