import BaseRenderingEngine from './BaseRenderingEngine.js';
import type * as EventTypes from '../types/EventTypes.js';
import type { InternalViewportInput, NormalizedViewportInput, IViewport } from '../types/IViewport.js';
import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
import type { VtkOffscreenMultiRenderWindow } from '../types/index.js';
declare class ContextPoolRenderingEngine extends BaseRenderingEngine {
    private contextPool?;
    constructor(id?: string);
    private ensureContextPool;
    protected enableVTKjsDrivenViewport(viewportInputEntry: NormalizedViewportInput): void;
    protected addVtkjsDrivenViewport(viewportInputEntry: InternalViewportInput): void;
    protected setVtkjsDrivenViewports(viewportInputEntries: NormalizedViewportInput[]): void;
    private _getDisplayedSize;
    protected _resizeVTKViewports(vtkDrivenViewports: IViewport[], keepCamera?: boolean, immediate?: boolean): void;
    protected _renderFlaggedViewports: () => void;
    private renderViewportUsingCustomOrVtkPipeline;
    private _renderViewportWithContext;
    protected _renderViewportFromVtkCanvasToOnscreenCanvas(viewport: IViewport, offScreenCanvas: HTMLCanvasElement): EventTypes.ImageRenderedEventDetail;
    private _resizeOffScreenCanvasForViewport;
    private _copyToOnscreenCanvas;
    private _resize;
    private getWidgetRenderers;
    private getViewportRenderPasses;
    getRenderer(viewportId: string): vtkRenderer | undefined;
    disableElement(viewportId: string): void;
    destroy(): void;
    getOffscreenMultiRenderWindow(viewportId: string): VtkOffscreenMultiRenderWindow;
}
export default ContextPoolRenderingEngine;
