type CanvasObserverProps = {
    canvas?: HTMLCanvasElement;
    trackPosition: boolean;
    onResize: (entries: ResizeObserverEntry[]) => void;
    onIntersection: (entries: IntersectionObserverEntry[]) => void;
    onDevicePixelRatioChange: () => void;
    onPositionChange: () => void;
};
/**
 * Internal DOM observer orchestration for HTML canvas surfaces.
 *
 * CanvasSurface owns the tracked state and device callback dispatch. This helper only manages
 * browser observers, timers, and polling loops, then reports events through callbacks.
 */
export declare class CanvasObserver {
    readonly props: CanvasObserverProps;
    private _resizeObserver;
    private _intersectionObserver;
    private _observeDevicePixelRatioTimeout;
    private _observeDevicePixelRatioMediaQuery;
    private readonly _handleDevicePixelRatioChange;
    private _trackPositionInterval;
    private _started;
    get started(): boolean;
    constructor(props: CanvasObserverProps);
    start(): void;
    stop(): void;
    private _refreshDevicePixelRatio;
    private _trackPosition;
}
export {};
//# sourceMappingURL=canvas-observer.d.ts.map