import { ChangeDetectorRef, OnDestroy } from '@angular/core';
import { PDFNotificationService } from '../../pdf-notification-service';
import { ResponsiveVisibility } from '../../responsive-visibility';
import * as i0 from "@angular/core";
/**
 * stephanrauh/pdf.js#15: undo and redo buttons for the annotation editor, so
 * touch users can undo without a keyboard. They send pdf.js's own
 * `editingaction` event, the same route Ctrl+Z / Ctrl+Y take. Unlike these
 * shortcuts, which only listen while an editor mode is active, the buttons
 * also work with no editor selected - pdf.js undoes and redoes in that mode
 * too - so they're only disabled when there's nothing to undo or redo.
 *
 * The buttons deliberately don't use the ids `undoButton` / `redoButton`:
 * the bleeding-edge pdf.js toolbar binds its own click handler to these, and
 * each click would undo twice.
 */
export declare class PdfUndoRedoComponent implements OnDestroy {
    private readonly cdr;
    show: import("@angular/core").InputSignal<ResponsiveVisibility>;
    disable: import("@angular/core").InputSignal<boolean>;
    canUndo: boolean;
    canRedo: boolean;
    private PDFViewerApplication;
    private eventBusAbortController;
    constructor(notificationService: PDFNotificationService, cdr: ChangeDetectorRef);
    /**
     * Runs `callback` and re-renders this component. pdf.js event bus listeners
     * run outside Angular's zone, so nothing else triggers change detection.
     */
    private asyncWithCD;
    private onPdfJsInit;
    ngOnDestroy(): void;
    onUndo: () => void;
    onRedo: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PdfUndoRedoComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PdfUndoRedoComponent, "pdf-undo-redo", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
}
