import { Dispatcher } from '../../bus';
import { ScrollMode, SpreadMode } from '../../enums';
import { PDFDocumentProxy } from '../../pdfjs';
import { ViewerType } from '../types';
export type InitializerOptions = Partial<{
    [key: string]: any;
    scroll?: ScrollMode;
    spread?: SpreadMode;
    rotation?: number;
    page?: number;
    scale?: number | string;
    scrollTop?: number;
    scrollLeft?: number;
}>;
export type InitializerExecuteResult = void | ((options: InitializerOptions) => void);
export type InitializerType = (Initializer | (new () => Initializer));
export declare abstract class Initializer extends Dispatcher {
    private _pdfDocument?;
    private _viewer?;
    get order(): number;
    get pdfDocument(): import('pdfjs-dist/types/src/display/api').PDFDocumentProxy;
    get viewer(): ViewerType;
    get eventBus(): import('../../bus').EventBus<Record<string, import('../../bus').ListenerCallback>, string>;
    get l10n(): import('../../l10n').IL10n;
    get logger(): import('../logger').Logger;
    init(pdfDocument: PDFDocumentProxy, viewer: ViewerType): void;
    prepare(options: InitializerOptions): Promise<InitializerOptions> | InitializerOptions;
    execute(_options: InitializerOptions): Promise<void> | void;
    finish(_options: InitializerOptions): Promise<void> | void;
}
