import { ProductSchema } from '@byondrnd/showroom-schemas';
import { TDefaultProducts, Visualizer } from '../../../Visualizer';
import { LayerDisplay } from './LayerDisplay';
import { IFavorite, IFavoriteScene, IApplication, IProduct } from '../../../EventSystem/EventTypes';
export declare class ProductsManager {
    visualizer: Visualizer;
    displayedProductsMap: Map<string, LayerDisplay>;
    favoriteProducts: Array<IFavorite>;
    favoriteSets: Array<IFavoriteScene>;
    private userDisplayedProducts;
    cart: string[];
    constructor(visualizer: Visualizer);
    setFavoriteSets(input: unknown): undefined;
    setFavoriteProducts(input: any): undefined;
    getUserDisplayedProducts(): TDefaultProducts;
    addUserDisplayedProduct(productSku: string, application: string): Promise<void>;
    displayProduct(productSku: string, application: string): Promise<void>;
    unDisplayAll(): void;
    unDisplayProduct(product: ProductSchema.IProduct): void;
    addProductToCart(sku: string): void;
    removeProductFromCart(sku: string): void;
    getFavoriteProducts(): Array<IFavorite>;
    addProductToFavorites(productSku: string, application: string): {
        name?: string | undefined;
        description?: string | undefined;
        price?: string | undefined;
        facets?: {
            options: string[] | null;
            name: string;
        }[] | undefined;
        sku: string;
        title: string;
        application: string;
        image: string;
        _id: string;
    } | undefined;
    removeProductFromFavorites(productSku: string, application: string): {
        name?: string | undefined;
        description?: string | undefined;
        price?: string | undefined;
        facets?: {
            options: string[] | null;
            name: string;
        }[] | undefined;
        sku: string;
        title: string;
        application: string;
        image: string;
        _id: string;
    } | undefined;
    getFavoriteSets(): IFavoriteScene[];
    addFavoriteScene(sceneId: string): Promise<{
        image: string;
        id: string;
        favorites: {
            product: {
                name?: string | undefined;
                description?: string | undefined;
                price?: string | undefined;
                facets?: {
                    options: string[] | null;
                    name: string;
                }[] | undefined;
                sku: string;
                title: string;
                application: string;
                image: string;
                _id: string;
            };
        }[];
        scene: {
            previewImage?: string | undefined;
            subSelection?: {
                title?: string | undefined;
                previewImage?: string | undefined;
                name: string;
            } | undefined;
            subtitle?: string | undefined;
            name: string;
            title: string;
            experienceId: string;
            sceneId: string;
        };
    }>;
    removeFavoriteScene(setId: string): {
        image: string;
        id: string;
        favorites: {
            product: {
                name?: string | undefined;
                description?: string | undefined;
                price?: string | undefined;
                facets?: {
                    options: string[] | null;
                    name: string;
                }[] | undefined;
                sku: string;
                title: string;
                application: string;
                image: string;
                _id: string;
            };
        }[];
        scene: {
            previewImage?: string | undefined;
            subSelection?: {
                title?: string | undefined;
                previewImage?: string | undefined;
                name: string;
            } | undefined;
            subtitle?: string | undefined;
            name: string;
            title: string;
            experienceId: string;
            sceneId: string;
        };
    } | undefined;
    getDisplayedProduct(application: IApplication): IProduct | undefined;
    getDisplayedFormatedProduct(): Array<IProduct>;
    getApplicationLayerDisplay(application: string, renderOrder: number): Promise<LayerDisplay | undefined>;
    getDisplayedProducts(): Array<ProductSchema.IProduct>;
}
