import { Rect } from "../../Core/Rect";
import type { WebGlRenderContext2D } from "../Drawing/WebGlRenderContext2D";
import { SciChartSurface } from "../Visuals/SciChartSurface";
import type { TRenderable } from "./RenderPassInfo";
import { RenderPassInfo } from "./RenderPassInfo";
import type { Point } from "../../Core/Point";
import type { DomAnnotationBase } from "../Visuals/Annotations/DomAnnotationBase";
/**
 * A class used internally in SciChart to perform layout, arrangement, data-preparation and rendering on the Cartesian 2D {@link SciChartSurface}
 */
export declare class SciChartRenderer {
    isInvalidated: boolean;
    /**
     * Used internally to track requestAnimationFrame for svg rendering.
     * When `undefined` there is no pending RAF.
     */
    svgRenderRequestId: number;
    protected sciChartSurface: SciChartSurface;
    protected previousTime: number;
    protected prevRect: Rect;
    protected prevSurfaceRect: Rect;
    domRenderRun: boolean;
    /**
     * Creates an instance of the SciChartRenderer
     * @param sciChartSurface The {@link SciChartSurface} that we are rendering
     */
    constructor(sciChartSurface: SciChartSurface);
    renderDomOnly(): void;
    /**
     * Render loop for the current {@SciChartSurface}
     * @param renderContext the {@WebGLRenderContext2D} used for drawing
     */
    render(renderContext: WebGlRenderContext2D): void;
    private getSeriesDrawFunctions;
    protected getAnnotationDrawFunctions(scs: SciChartSurface, renderPassInfo: RenderPassInfo, renderContext: WebGlRenderContext2D): void;
    protected getHTMLAnnotationDrawFunction(annotation: DomAnnotationBase, coordSvgTranslation: Point): void;
    private getRenderContextAnnotationDrawFunction;
    protected enqueueRenderables(renderContext: WebGlRenderContext2D, renderPassInfo: RenderPassInfo): void;
    protected enqueueRenderable(renderContext: WebGlRenderContext2D, item: TRenderable, absoluteLayer: number): void;
    protected displayErrorMessage(): void;
    private drawRenderContextAnnotations;
    private drawHtmlBasedAnnotations;
    private drawSvgAnnotations;
    private validate;
    protected resizeAnnotationRootElements(seriesViewRect: Rect): void;
    private prepareAxesRenderData;
    private prepareSeriesRenderData;
    private drawAxes;
    private drawSeries;
    private drawDebugAxes;
    private tryPerformAutoRangeOn;
    private onParentSurfaceRendered;
    private updateWatermark;
    private scheduleTitleDraw;
    private measureTitle;
    private layoutTitle;
    private getAbsoluteLayer;
    private drawDebugSurfaceRect;
}
