import { Container, IPoint, ISize, Product } from "@aurigma/design-atoms-model";
import { IViewerConfigurationContext } from "./PreviewCanvas";
import { IListenableColorPreviewService, Service, IDesignAtomsApiClient } from "..";
import { IPreviewContainersSourceFactory } from "./Interfaces/IPreviewContainersSource";
import { IColorParser } from "../../Serialization/Color";
export declare class ProductPreviewRenderer {
    private readonly _product;
    private readonly _previewContainersSourceFactory;
    private readonly _canvases;
    private readonly _zoom;
    private readonly _renderer;
    private readonly _designAtomsApiClient;
    private readonly _colorPreviewService;
    private readonly _service;
    private readonly _viewerConfigurationContext;
    private readonly _stubInactiveCanvas;
    private readonly _colorParser;
    constructor(product: Product, previewContainersSourceFactory: IPreviewContainersSourceFactory, designAtomsApiClient: IDesignAtomsApiClient, colorPreviewService: IListenableColorPreviewService, service: Service, viewerConfigurationContext: IViewerConfigurationContext, colorParser: IColorParser);
    private get _margins();
    private get _mul();
    render(canvas: HTMLCanvasElement, surfaceIndex: number, containersFilter?: (container: Container) => boolean, previewSize?: ISize, previewOffset?: IPoint): void;
    waitUpdateAndExecute(surfaceIndex: number, callback: () => void): Promise<void>;
    dispose(): void;
    private _getLayersToDraw;
    private _getPreviewSize;
    private _getPreviewOffset;
    private _updateSurfaces;
    private _createSurfaceCanvas;
}
