import { IDesignAtomsApiClient } from "../IDesignAtomsApiClient";
import { IListenableColorPreviewService } from "../IColorPreviewService";
import { Service } from "../Service";
import { IViewerConfigurationContext } from "./PreviewCanvas";
import { IPreviewOptions } from "./Interfaces/IPreviewOptions";
import { IProductContext } from "./Interfaces/IProductContext";
export declare class ProductPreviewService {
    private readonly _productContext;
    private readonly _designAtomsApiClient;
    private readonly _colorPreviewService;
    private readonly _service;
    private readonly _viewerConfigurationContext;
    private _productPreviewRenderer?;
    constructor(productContext: IProductContext, designAtomsApiClient: IDesignAtomsApiClient, colorPreviewService: IListenableColorPreviewService, service: Service, viewerConfigurationContext: IViewerConfigurationContext);
    private get _productPreviewEnabled();
    private get _currentSurfaceIndex();
    /**
     * @param surfaceIndex Index of the surface to preview
     * @param options Preview rendering options
     * @returns Blob containing the preview image of given surface
     */
    getSurfacePreview(surfaceIndex: number, options?: IPreviewOptions): Promise<Blob>;
    /**
     * @param options Preview rendering options
     * @returns Blob containing the preview image of the current surface
     */
    getCurrentSurfacePreview(options?: IPreviewOptions): Promise<Blob>;
    dispose(): void;
    private _enableProductPreview;
    private _createPreviewRenderer;
    private _onCurrentSurfaceChanged;
    private _getIgnoreContainers;
    private _getPreviewSizeAndOffset;
}
