import { JewelryTypeName } from '../../trillion-common/src/typings/jewelry-type';
import { OnViewerConfigSaved } from './viewer/types/on-viewer-config-saved';
import { OnWidgetConfigSaved } from './viewer/types/on-widget-config-saved';
import { LoaderTheme } from './viewer/types/loader-theme';
import { setSelectedMaterial } from './viewer/utils/ConfiguratorController';
import { CustomLoaderType } from '../../trillion-common/src/typings/custom-loader-type';
export declare class TrillionViewerApp {
    private _root;
    private _jewelryId;
    private _zoomMax;
    private _zoomMin;
    private _startSize;
    private _reducePixelRatio;
    private _jewelryType;
    private _isGUIEnabled;
    private _isPerformanceEnabled;
    private _autoRotateSpeed;
    private _rotateObject;
    private _rotateSpeed;
    private _background;
    private _onViewerConfigSaved;
    private _onWidgetConfigSaved;
    private _customBackendUrl;
    private _darkPointsOfView;
    private _loaderTheme;
    private _posteffectsConfigJson;
    private _customLoader;
    private _serviceActivationKey;
    private _disableShadowRoot;
    private _cancelMirroring;
    private _tryon;
    private _customUrlTryOn;
    private _useExternalConfigurator;
    configuratorController: {
        changeColor: (materialColor: import("../../trillion-common/src/objects/material-color.object").MaterialColor, sku: string) => void;
        setGemColor: (gemColor: import("../../trillion-common/src/objects/material-color.object").MaterialColor, sku: string, gemSubName?: string, uniformName?: string) => void;
        engrave: (text: string, font: string | undefined, sku: string) => void;
        changeCut: (newCut: import("../../trillion-common/src/objects/diamond-cut.object").DiamondCut, sku: string) => void;
        changeLetter: (newLetter: string, availableLetters: string[], sku: string) => void;
        setSelectedMaterial: typeof setSelectedMaterial;
    };
    /**
     * Create viewer on the provided HTML element
     * @param entryElem - HTMLElement that the viewer will be loaded into
     */
    init(entryElem: HTMLElement): void;
    /**
     * Set the id(SKU) of the jewelry to load
     * @param sku - Stock keeping unit
     */
    setJewelryID(sku: string): void;
    /**
     * Get the id(SKU) of the uploaded jewelry
     */
    getJewelryID(): string | null;
    /**
     * Set the type of jewelry to load
     * @param type - Jewelry type
     * @deprecated - jewelry type is now inferred from the jewelry id
     */
    setJewelryType(type: JewelryTypeName | null): void;
    /**
     * Get the jewelry type
     * @deprecated - jewelry type is now inferred from the jewelry id
     */
    getJewelryType(): JewelryTypeName | null;
    setIsGUIEnabled(isGUIEnabled: boolean | undefined): void;
    getIsGUIEnabled(): boolean | undefined;
    setIsPerformanceEnabled(isPerformanceEnabled: boolean | undefined): void;
    getIsPerformanceEnabled(): boolean | undefined;
    setAutoRotateSpeed(autoRotateSpeed: number | undefined): void;
    setRotateObject(rotateObject: boolean | undefined): void;
    getRotateObject(): boolean | undefined;
    setRotateSpeed(rotateSpeed: number | undefined): void;
    getRotateSpeed(): number | undefined;
    setBackground(background: string | undefined): void;
    getAutoRotateSpeed(): number | undefined;
    setReducePixelRatio(reducePixelRatio: boolean | undefined): void;
    getReducePixelRatio(): boolean | undefined;
    setOnViewerConfigSaved(callback: OnViewerConfigSaved | undefined): void;
    getOnViewerConfigSaved(): OnViewerConfigSaved | undefined;
    setOnWidgetConfigSaved(callback: OnWidgetConfigSaved | undefined): void;
    getOnWidgetConfigSaved(): OnWidgetConfigSaved | undefined;
    setCustomBackendUrl(url: string | null): void;
    getCustomBackendUrl(): string | null;
    setZoomMax(zoomMax: number | undefined): void;
    setZoomMin(zoomMin: number | undefined): void;
    setStartPosition(startSize: number | undefined): void;
    setDarkPointsOfView(darkPointsOfView: boolean | undefined): void;
    setLoaderTheme(theme: LoaderTheme | null): void;
    setPosteffectsConfigJson(posteffectsConfigJson: string | undefined): void;
    setCustomLoader(loader: CustomLoaderType | undefined): void;
    setServiceActivationKey(key: string | null): void;
    getServiceActivationKey(): string | null;
    setDisableShadowRoot(value: boolean): void;
    getDisableShadowRoot(): boolean;
    setCancelMirroring(value: boolean): void;
    setTryon(value: boolean): void;
    setCustomUrlTryOn(value: string): void;
    useExternalConfigurator(value: boolean): void;
    /**
     * Restart the viewer after changing the parameters
     */
    refresh(): void;
    /**
     * Remove an existing viewer from the DOM
     */
    destroy(): void;
}
