import { CollectionSchema, ProductSchema } from '@byondrnd/showroom-schemas';
import { IApplication, IFilter, IProduct } from '../../EventSystem/EventTypes';
import { Visualizer } from '../../..';
export interface CatalogInfo {
    organization: string;
    catalog: string;
}
export declare class CatalogManager {
    catalog: CollectionSchema.ICatalog;
    collections: Array<CollectionSchema.ICollection>;
    assetsCollection: CollectionSchema.ICollection;
    visualizer: Visualizer;
    catalogInfo: CatalogInfo;
    selectionState: Map<string, {
        application?: IApplication;
        filters?: {
            [application: string]: import("../../EventSystem/EventTypes").IFacet[];
        };
    }>;
    constructor(visualizer: Visualizer);
    init(sceneIndex: string): Promise<void>;
    GetProduct(productSku: string, application: string): ProductSchema.IProduct;
    getAllProducts(): ProductSchema.IProduct[];
    getAllFormatedProducts(): IProduct[];
    GetProductList(sceneId: string): IProduct[];
    GetProductListByApplication(application: IApplication): IProduct[];
    productMatchFilter(products: ProductSchema.IProduct[], filters?: {
        name: string;
        options: string[];
    }[]): ProductSchema.IProduct[];
    getFullProductDetails(productId: string): Promise<any>;
    getCatalogsApplications(): {
        application: string;
        image: string;
    }[];
    getApplicationAsset(application: string): ProductSchema.IProduct;
    getApplicationPreviewImage(application: string): string;
    getApplicationTitle(application: string): string;
    getApplicationRenderOrder(application: string): number;
    getFilters(sceneId: string): import("../../EventSystem/EventTypes").IFacet[];
    loadCatalogs(): Promise<CollectionSchema.ICatalog>;
    loadCatalogCollections(): Promise<CollectionSchema.ICollection[]>;
    loadCatalogsCollections(): Promise<void>;
}
