/**
 * @license
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { type Region } from '../output.js';
import { type StickyHeader } from '../dom.js';
import { type Canvas, type Rect } from './canvas.js';
export type CompositionOptions = {
    skipStickyHeaders?: boolean;
    skipScrollbars?: boolean;
    stickyHeadersInBackbuffer?: boolean;
    animatedScroll?: boolean;
    targetScrollTops: ReadonlyMap<string | number, number>;
    regionWasAtEnd: Map<string | number, boolean>;
    canvasHeight: number;
};
/**
 * Handles rendering of various UI elements onto a Canvas.
 */
export declare class Compositor {
    private readonly options;
    private static lastBackgroundColor?;
    private static lastBackgroundStyles;
    constructor(options: CompositionOptions);
    drawContent(canvas: Canvas, region: Region, absX: number, absY: number, clip: Rect): void;
    drawStickyHeaders(canvas: Canvas, region: Region, absX: number, absY: number, clip: Rect): void;
    drawScrollbars(canvas: Canvas, region: Region, absX: number, absY: number, clip: Rect): void;
    isHeaderStuck(header: StickyHeader, absY: number, scrollTop: number, region: Region): boolean;
    calculateActualStuckTopHeight(region: Region, absY: number, scrollTop: number): number;
    calculateActualStuckBottomHeight(region: Region, absY: number, scrollTop: number): number;
    private getBackgroundStyles;
}
