import { Nullable } from "../types";
export declare enum TryOnType {
    NotSelected = 0,
    Eyewear = 1,
    Shoes = 2,
    Jewelry = 3,
    Headwear = 4,
    Watches = 5
}
export interface TryOnProduct {
    productID: number;
    typeID: number;
    providerID: number;
    settings: string;
}
export declare enum TryOnProvider {
    NotSelected = 0,
    Mazing = 1,
    Banuba = 2
}
export interface TryOnTypeSettings {
    try_on: boolean;
    pd?: boolean;
    active: boolean;
}
export declare enum TryOnSettingsType {
    VirtualTryOn = "try_on",
    GlassPupillaryDistanceTool = "pd",
    StyleButton = "styleButton",
    MandatoryPupillaryDistance = "mandatoryPD"
}
export interface TryOnButtonCustomization {
    image: Nullable<string>;
    textLabel: Nullable<string>;
    textColor: Nullable<string>;
    backgroundColor: Nullable<string>;
    borderColor: Nullable<string>;
    borderWidth: number;
    borderRadius: number;
}
export interface TryOnSettings {
    type: TryOnType;
    styleButton: "single" | "multiple";
    buttonCustomizations: TryOnButtonCustomization[];
    typeSettings: TryOnTypeSettings;
}
export declare enum TryOnFineTuningMazingEnvironment {
    Neutral = "neutral.hdr",
    Light = "light.hdr",
    Bright = "bright.hdr",
    Studio = "studio.hdr",
    Court = "court.hdr",
    Blurred_Studio = "startup.hdr"
}
export interface TryOnFineTuningSettings {
    scale: number;
    position: {
        x: number;
        y: number;
        z: number;
    };
}
export interface TryOnFineTuningMazingSettings extends TryOnFineTuningSettings {
    temple: boolean;
    environment: TryOnFineTuningMazingEnvironment;
}
export interface ProductTryOn {
    productID: number;
    typeID: TryOnType;
    providerID: number;
    settings?: string;
}
export interface FineTuningProviderData {
    mesh?: Blob;
    settings?: TryOnFineTuningSettings;
}
