import { IGXA } from "@intelligentgraphics/igd.core";
import { Session, IGXRLoader } from "@intelligentgraphics/igd.productdata";
import { TCatalogEntryItems } from "./Types";
export interface CatalogFetcherGetPathContentOptions {
    flat?: boolean;
}
/**
 * Provides methods to fetch data for paths
 *
 * @export
 * @interface CatalogFetcher
 */
export interface CatalogFetcher {
    getPathContent(path: string[], options?: CatalogFetcherGetPathContentOptions): Promise<TCatalogEntryItems>;
    getCatalog(path: string[]): Promise<IGXA.ICatalogItem>;
    getCatalogWizard(path: string[]): Promise<IGXA.IWizardItem | undefined>;
    getAddables(path: string[], baseArticleNumber: string): Promise<IGXA.IArticleItem[]>;
    getFolder(path: string[]): Promise<IGXA.IFolderItem | IGXA.IMultiArticleItem>;
    getReadablePath(path: string[]): Promise<string[]>;
    getPathEntries(path: string[]): Promise<(IGXA.IFolderItem | IGXA.IMultiArticleItem | IGXA.ICatalogItem)[]>;
}
export declare const createCatalogFetcher: (session: Session<import("@intelligentgraphics/igd.productdata").ApplicationStateValue, import("@intelligentgraphics/igd.productdata").NotificationPayloads<import("@intelligentgraphics/igd.productdata").ApplicationStateValue>>, igxrLoader: IGXRLoader | undefined, language: string) => CatalogFetcher;
