import { ProductSchema } from '@byondrnd/showroom-schemas';
import { TDefaultProducts, Visualizer } from '../../../Visualizer';
import { IFavorite, IFavoriteScene, IApplication, IProduct, IFavoriteProductSkuAndApplicationList, IFavoriteProductList, IFavoriteSceneList } from '../../../EventSystem/EventTypes';
export declare class ProductsManager {
    visualizer: Visualizer;
    displayedProductsMap: Map<string, ProductSchema.IProduct>;
    favoriteProducts: Array<IFavorite>;
    externalFavoriteProducts: IFavoriteProductSkuAndApplicationList | undefined;
    favoriteSets: Array<IFavoriteScene>;
    private userDisplayedProducts;
    cart: string[];
    constructor(visualizer: Visualizer);
    setFavoriteSets(input: IFavoriteSceneList): void;
    listenOnceForSceneLoaded: () => void;
    setFavoriteProducts(input: IFavoriteProductList | IFavoriteProductSkuAndApplicationList): void;
    getUserDisplayedProducts(): TDefaultProducts;
    addUserDisplayedProduct(productSku: string, application: string): Promise<void>;
    displayProduct(productSku: string, application: string, fromFavorites?: boolean): Promise<void>;
    displayOnMesh(rootModel: THREE.Mesh, productSku: string): Promise<void>;
    addProductToCart(sku: string): void;
    removeProductFromCart(sku: string): void;
    getFavoriteProducts(): Array<IFavorite>;
    addProductToFavorites(product: IProduct): IProduct;
    removeProductFromFavorites(productSku: string, application: string): IProduct | undefined;
    getFavoriteSets(): IFavoriteScene[];
    addFavoriteScene(sceneId: string): Promise<IFavoriteScene>;
    removeFavoriteScene(setId: string): IFavoriteScene | undefined;
    getDisplayedProduct(_application: IApplication | string): IProduct | undefined;
    getDisplayedFormatedProduct(): Array<IProduct>;
    getDisplayedProducts(): [string, ProductSchema.IProduct][];
}
