import IProductThemeConfig from "@aurigma/design-atoms-model/Product/Interfaces/IProductThemeConfig";
import { Product } from "@aurigma/design-atoms-model/Product/Product";
import { Item, ThemeBinding } from "@aurigma/design-atoms-model/Product/Items";
import { ItemData } from "@aurigma/design-atoms-model/Product/ItemsData";
import { EventManager } from "../EventManager";
import { ProductHandler } from "../ProductHandler";
import { Canvas } from "../../Canvas";
import { CommandManager } from "../../Commands/CommandManager";
export declare class ProductThemeManager {
    private _productHandler;
    private _canvas;
    private _eventManager;
    currentProductTheme: IProductThemeConfig;
    productThemes: {
        [name: string]: IProductThemeConfig;
    };
    private _productThemeApplier;
    constructor(_productHandler: ProductHandler, productThemes: {
        [name: string]: IProductThemeConfig;
    }, _canvas: Canvas, _eventManager: EventManager);
    applyProductTheme(theme: string | IProductThemeConfig, product: Product, commandManager: CommandManager): boolean;
    applyToItem(item: Item, theme?: IProductThemeConfig, themeBinding?: ThemeBinding): Promise<boolean>;
}
export declare class ProductThemeConfig implements IProductThemeConfig {
    [name: string]: string | ItemData;
    constructor(rawObject: Object);
}
