import { Dispatcher } from '../../bus';
import { PageViewport, OptionalContentConfig, RenderTask } from '../../pdfjs';
import { Page, PageUpdate } from '../page';
export type LayerBuilderType = (LayerBuilder | (new () => LayerBuilder));
export declare abstract class LayerBuilder<T = any> extends Dispatcher {
    readonly params?: T | undefined;
    div?: HTMLDivElement;
    protected _page?: Page;
    protected abortController?: AbortController;
    protected cancelled: boolean;
    constructor(params?: T | undefined);
    get priority(): number;
    get name(): string;
    get page(): Page;
    get id(): number;
    get options(): import('../page').PageOptions;
    get eventBus(): import('../../bus').EventBus<Record<string, import('../../bus').ListenerCallback>, string>;
    get signal(): AbortSignal | undefined;
    get l10n(): import('../../l10n').IL10n;
    get pdfPage(): import('pdfjs-dist/types/src/display/api').PDFPageProxy | undefined;
    get viewport(): import('pdfjs-dist/types/src/display/display_utils').PageViewport;
    get canvas(): HTMLCanvasElement | undefined;
    get canvasPage(): import('../page').CanvasPage;
    get layerProperties(): import('..').LayerPropertiesManager;
    get pdfDocument(): import('pdfjs-dist/types/src/display/api').PDFDocumentProxy | undefined;
    get layersPage(): import('../page').LayersPage;
    findLayer<T>(layer: LayerBuilderType): T | undefined;
    hasLayer(layer: LayerBuilderType): boolean;
    canRegister(): boolean;
    canKeep(keep?: boolean): boolean;
    canCancel(keep?: boolean): boolean;
    stopOnException(_ex: any): boolean;
    setPage(page: Page): void;
    dispatch(name: string, data?: {}): void;
    init(): Promise<void> | void;
    protected create(name: string, position: number): HTMLDivElement;
    process(params: PageUpdate): void;
    update(params: PageUpdate): void;
    updateOptionalContentConfig(optionalContentConfig: OptionalContentConfig): void;
    cancel(): void;
    hide(): void;
    show(): void;
    render(_postponeDrawing?: boolean): Promise<void>;
    protected build(): Promise<void> | void;
    finish(_renderTask: RenderTask): void;
    protected updateLayerDimensions(viewport?: PageViewport): void;
}
