import type IStackViewport from '../types/IStackViewport.js';
import type IVolumeViewport from '../types/IVolumeViewport.js';
import type * as EventTypes from '../types/EventTypes.js';
import type { PublicViewportInput, InternalViewportInput, NormalizedViewportInput, IViewport } from '../types/IViewport.js';
import type { VtkOffscreenMultiRenderWindow } from '../types/index.js';
export declare const VIEWPORT_MIN_SIZE = 2;
declare abstract class BaseRenderingEngine {
    readonly id: string;
    hasBeenDestroyed: boolean;
    offscreenMultiRenderWindow: VtkOffscreenMultiRenderWindow;
    offScreenCanvasContainer: HTMLDivElement;
    protected _viewports: Map<string, IViewport>;
    protected _needsRender: Set<string>;
    protected _animationFrameSet: boolean;
    protected _animationFrameHandle: number | null;
    protected useCPURendering: boolean;
    constructor(id?: string);
    enableElement(viewportInputEntry: PublicViewportInput): void;
    disableElement(viewportId: string): void;
    disableViewport(viewportId: string): void;
    setViewports(publicViewportInputEntries: PublicViewportInput[]): void;
    resize(immediate?: boolean, keepCamera?: boolean): void;
    getViewport<T = IViewport>(viewportId: string): T;
    getViewports(): IViewport[];
    render(): void;
    renderFrameOfReference: (FrameOfReferenceUID: string) => void;
    renderViewports(viewportIds: string[]): void;
    renderViewport(viewportId: string): void;
    destroy(): void;
    fillCanvasWithBackgroundColor(canvas: HTMLCanvasElement, backgroundColor: [number, number, number]): void;
    private static readonly NEXT_TYPE_REMAP;
    private _normalizeViewportInputEntry;
    private _normalizeViewportInputEntries;
    private _resizeUsingCustomResizeHandler;
    private _removeViewport;
    private addCustomViewport;
    getRenderer(viewportId: any): import("@kitware/vtk.js/Rendering/Core/Renderer").vtkRenderer;
    getOffscreenMultiRenderWindow(_viewportId?: string): VtkOffscreenMultiRenderWindow;
    private setCustomViewports;
    protected _getViewportsAsArray(): IViewport[];
    private _setViewportsToBeRenderedNextFrame;
    private _render;
    private _resetViewport;
    private _clearAnimationFrame;
    private _reset;
    protected _throwIfDestroyed(): void;
    protected abstract _resizeVTKViewports(vtkDrivenViewports: (IStackViewport | IVolumeViewport)[], keepCamera: boolean, immediate: boolean): void;
    protected abstract enableVTKjsDrivenViewport(viewportInputEntry: NormalizedViewportInput): void;
    protected abstract addVtkjsDrivenViewport(viewportInputEntry: InternalViewportInput, offscreenCanvasProperties?: unknown): void;
    protected abstract _renderFlaggedViewports(): void;
    protected abstract setVtkjsDrivenViewports(viewportInputEntries: NormalizedViewportInput[]): void;
    protected abstract _renderViewportFromVtkCanvasToOnscreenCanvas(viewport: IViewport, offScreenCanvas: HTMLCanvasElement): EventTypes.ImageRenderedEventDetail;
}
export default BaseRenderingEngine;
