import { DomPainterInput, DomPainterOptions, PageDecorationProvider, PaintSnapshotAnnotationEntity, PaintSnapshot, PositionMapping } from '../../../../../../../layout-engine/painters/dom/src/index.js';
/**
 * Owns the DomPainter lifecycle and render-surface control state on behalf of
 * PresentationEditor.
 *
 * This adapter is intentionally stateful:
 * - painter control inputs such as zoom, providers, scroll container, and
 *   virtualization pins are cached here rather than pushed ad hoc from
 *   PresentationEditor into the live painter instance
 * - paint snapshots are captured and indexed here so editor code can query
 *   mounted painted elements without scraping the DOM
 */
export declare class PresentationPainterAdapter {
    #private;
    get hasPainter(): boolean;
    ensurePainter(options: DomPainterOptions): void;
    reset(): void;
    paint(input: DomPainterInput, mount: HTMLElement, mapping?: PositionMapping): void;
    setProviders(header?: PageDecorationProvider, footer?: PageDecorationProvider): void;
    setShowFormattingMarks(showFormattingMarks: boolean): void;
    setZoom(zoom: number): void;
    setScrollContainer(el: HTMLElement | null): void;
    onScroll(): void;
    setVirtualizationPins(pageIndices: number[] | null | undefined): void;
    getPaintSnapshot(): PaintSnapshot | null;
    getMountedPageIndices(): number[];
    getAnnotationElementByPmStart(pmStart: number): HTMLElement | null;
    getAnnotationEntitiesByType(type: string): PaintSnapshotAnnotationEntity[];
    getStructuredContentBlockElementsById(id: string): HTMLElement[];
    getStructuredContentInlineElementsById(id: string): HTMLElement[];
    getInlineImageElementByPmStart(pmStart: number): HTMLElement | null;
    getImageFragmentElementByPmStart(pmStart: number): HTMLElement | null;
}
//# sourceMappingURL=PresentationPainterAdapter.d.ts.map