import { Renderer } from '../../../types';
/**
 * An abstract base class for 2D canvas rendering. This class provides a foundational
 * implementation for managing a canvas element and its 2D rendering context, as well
 * as utility methods for rendering and pixel data extraction.
 *
 * Subclasses must implement the `reset` and `renderFrame` methods to define specific
 * rendering behavior.
 *
 * @implements Renderer
 */
export declare abstract class Canvas2DRendererBase implements Renderer {
    protected canvas: HTMLCanvasElement;
    protected ctx: CanvasRenderingContext2D;
    protected lastUpdate: number;
    constructor();
    dispose(): void;
    /**
     * Determines whether a specified time interval has elapsed since the last update.
     *
     * @param intervalMs - The time interval in milliseconds to check against.
     * @returns `true` if the elapsed time since the last update is greater than or equal to the specified interval; otherwise, `false`.
     */
    protected shouldStep(intervalMs: number): boolean;
    abstract reset(): void;
    abstract renderFrame(width: number, height: number): void;
    /**
     * Reads pixel data from the canvas context within the specified width and height.
     *
     * @param width - The width of the area to read pixels from, starting at the top-left corner (0, 0).
     * @param height - The height of the area to read pixels from, starting at the top-left corner (0, 0).
     * @returns A `Uint8ClampedArray` containing the RGBA pixel data for the specified area.
     */
    readPixels(width: number, height: number): Uint8ClampedArray;
}
//# sourceMappingURL=canvas-2d-renderer.d.ts.map