import { Dispatcher, EventBus } from '../bus';
import { PluginType } from '../plugins';
import { Toolbar, ToolbarOptions, ToolbarItemType } from '../toolbar';
import { ViewerType, ViewerOptions } from '../viewer';
export type PdfonOptions = {
    container: string | HTMLDivElement;
    toolbarOptions?: ToolbarOptions;
    viewerOptions?: ViewerOptions;
    plugins?: Record<string, any>;
};
export declare class Pdfon extends Dispatcher {
    readonly eventBus: EventBus;
    protected plugins: PluginType[];
    protected toolbarItems: Map<string, ToolbarItemType>;
    constructor(options?: Partial<{
        eventBus: EventBus;
        plugins: PluginType[];
        toolbarItems: Map<string, ToolbarItemType>;
    }>);
    addPlugin(...plugin: PluginType[]): void;
    removePlugin(pluginToRemove: PluginType | string): void;
    protected resolvePlugins(params?: Record<string, any>): import('../plugins').Plugin<any>[];
    protected initializePlugins(toolbar: Toolbar, viewer: ViewerType, params?: Record<string, any>): Promise<import('../plugins').Plugin<any>[]>;
    registerToolbarItem(name: string, item: ToolbarItemType): void;
    unregisterToolbarItem(name: string): void;
    protected initializeToolbar(toolbar: Toolbar): Promise<void>;
    render(options?: Partial<PdfonOptions>): Promise<ViewerType>;
}
