import type { NumberRange } from "../../Core/NumberRange";
import type { Rect } from "../../Core/Rect";
import type { IPointSeries } from "../Model/PointSeries/IPointSeries";
import type { IRenderableSeries } from "../Visuals/RenderableSeries/IRenderableSeries";
import type { IOrderedRenderable } from "../../types/OrderedRenderable";
export type TSeriesRenderPassInfo = {
    pointSeries: IPointSeries;
    renderableSeries: IRenderableSeries;
    indicesRange: NumberRange;
    resamplingHash: number;
};
/** @ignore */
export type TRenderable = {
    renderable: IOrderedRenderable;
    resolvedOrder: number;
    drawFunction: () => void;
};
export declare class RenderPassInfo {
    renderableSeriesArray: IRenderableSeries[];
    seriesViewRect: Rect;
    readonly rendermap: Map<number, Map<number, TRenderable[]>>;
    private readonly reverseMap;
    readonly relativeItems: {
        renderable: IOrderedRenderable;
        drawFunction: () => void;
        tries: number;
    }[];
    /**
     * This flag is used to trace if there are other renderables at the SeriesLayer.
     * If there are we need to call renderContext.setTranslationRotationAndClip() before rendering each renderable series
     */
    hasOtherSeriesLayerRenderables: boolean;
    constructor(seriesCount: number, seriesViewRect: Rect);
    addRenderable(renderable: IOrderedRenderable, drawFunction: () => void): void;
    resolveNextTo(): void;
}
