import { IGXA } from "@intelligentgraphics/igd.core";
import { CatalogManager } from "../CatalogManager";
import { ICatalogManager } from "../Types";
/** Specific settings for the IGXA Catalog. */
export interface IIGXACatalogManagerSettings {
    data: IGXA.IGXA_Object;
    catalogLocale: string;
    sourceId: string;
}
/**
 * IGXACatalogManager is an implementation of the ICatalogManager interface that
 * uses the IGD.IGXA catalog format as data source.
 */
export declare class IGXACatalogManager extends CatalogManager implements ICatalogManager {
    static Create(settings: IIGXACatalogManagerSettings): Promise<IGXACatalogManager>;
    private _settings;
    private lastID;
    constructor(settings: IIGXACatalogManagerSettings);
    /** Returns the class name for identifying instances at runtime */
    getClassName(): string;
    /**
     * Retrieves the addables of an item.
     *
     * @param {string} baseArticleId number of the base article for which addables should be searched.
     * @returns {Promise<IGXA.IArticleItem[]>}
     * @memberof IGXACatalogManager
     */
    getAddables(baseArticleId: string): Promise<IGXA.IArticleItem[]>;
    hasFolder(folderId: string): boolean;
    removeFolder(folderId: string): boolean;
    removeArticle(articleId: string, parentFolderId?: string): void;
    addFolder(newFolderItem: IGXA.IFolderItem, parentFolderId?: string): boolean;
    addArticle(newArticleItem: IGXA.IArticleItem, parentFolderId?: string): boolean;
    addItems(items: IGXA.TItems, parentFolderId?: string): boolean;
    /** Retrieves the folder item. Synchroneous version of getFolder().
     * @param folderId Internal ID of the folder.
     * @returns The folder item
     */
    getIGXAFolder(folderId: string): IGXA.IFolderItem;
    /** Retrieves the first article item with given id.
     * @param articleId article id.
     * @returns The article item
     */
    getIGXAArticle(articleId: string): IGXA.IArticleItem;
    getIGXASet(setId: string): IGXA.ISetItem;
    /** Retrieves the parent folder item.
     * @param folderId Internal ID of the folder.
     * @returns The parent folder item as Promise
     */
    getIGXAParentFolder(folderId: string): IGXA.IFolderItem | undefined;
    readonly IGXA: IGXA.IGXA_Object;
    private getCatalogTextLocalized;
    private findFolderItem;
    private patchData;
    private findArticleItem;
    private readonly Settings;
}
