/**
 * WM
 * @module WM
 * @exports WM
 */
import { VariantsOptions } from "./variants/types";
import { ImageOptions } from "./images/types";
import Variants from "./variants/index";
import Images from "./images/index";
import {PriceOptions} from "./price/types";
import Price from "./price/index";
import { PrintLocation } from "./print_locations/types";
import PrintLocations from "./print_locations";
import PriceChange from "./price/priceChange";
import { CustomizationOptions } from "./customization/types";
import Customization from "./customization";
import CustomizationTeeInBlue from "./customization-teeinblue";

class WM {
    static initVariants(options: VariantsOptions) {
        return new Variants(options);
    }

    static initImages(options: ImageOptions) {
        return new Images(options);
    }

    static initPrice(options: PriceOptions) {
        return new Price(options);
    }

    static initPrintLocations(options: PrintLocation[], locale: string) {
        return new PrintLocations(options, locale);
    }

    static initPriceChange() {
        return new PriceChange();
    }

    static initCustomization(options: CustomizationOptions) {
        return new Customization(options);
    }

    static initCustomizationTeeinblue(campagin: any, options: any = {}) {
        return new CustomizationTeeInBlue(campagin, options);
    }
}

export default WM;
