import { Dispatcher } from '../bus';
import { ViewerType } from '../viewer';
import { Toolbar, ToolbarItemType } from '../toolbar';
export { ToolbarItemType, };
export type PluginType = (Plugin | (new () => Plugin));
export declare abstract class Plugin extends Dispatcher {
    private _toolbar?;
    private _viewer?;
    protected abortController?: AbortController;
    get name(): string;
    get toolbar(): Toolbar;
    get viewer(): ViewerType;
    get options(): import('../viewer').ViewerOptions;
    get eventBus(): import('../bus').EventBus<Record<string, import('../bus').ListenerCallback>, string>;
    get signal(): AbortSignal | undefined;
    get l10n(): import('../l10n').IL10n;
    get logger(): import('../viewer/logger').Logger;
    get pdfDocument(): import('pdfjs-dist/types/src/display/api').PDFDocumentProxy | undefined;
    get rootContainer(): HTMLElement;
    get container(): HTMLDivElement;
    get viewerContainer(): HTMLDivElement;
    get pagesCount(): number;
    get page(): number;
    set page(val: number);
    setCurrentPage(page: number): void;
    get initialized(): boolean;
    setToolbar(toolbar: Toolbar): void;
    setViewer(viewer: ViewerType): void;
    protected getToolbarItems(): Map<string, ToolbarItemType>;
    protected init(): Promise<void> | void;
    initialize(): Promise<void>;
    protected destroy(): Promise<void> | void;
    terminate(): Promise<void>;
}
