import type { AddButton, EditorPlugin as EditorPluginType, IRicosEditor, PluginExports, PublicCommands, QuickAction, RicosServices, TextButton } from '../ricos-types/index.js';
import type { Selection } from '../tiptap/pm/state';
import { EditorPlugin } from './editor-plugin.js';
export type PluginServices = Omit<RicosServices, 'plugins' | 'editor' | 'zIndexService' | 'getEditorQuery'>;
export declare class PluginCollisionError extends Error {
}
export declare class EditorPlugins {
    private plugins;
    private services;
    private publicCommands?;
    static mergeConfig: (config?: import("../ricos-types/plugin-types.js").LegacyEditorPluginConfig) => (plugins: EditorPluginType[]) => {
        config: any;
        type: string;
        tiptapExtensions: import("../ricos-types/tiptap.js").RicosExtension[];
        pmNodeConverters?: import("../pm-converters/types.js").PmNodeConverter[];
        pmMarkConverters?: import("../pm-converters/types.js").PmMarkConverter[];
        getAddButtons?: import("../ricos-types/plugin-types.js").AddButtonsCreator<Record<string, any>> | undefined;
        textButtons?: TextButton<any>[];
        getQuickActions?: (({ pluginServices, }: {
            pluginServices: PluginServices;
            config: Record<string, any>;
        }) => QuickAction[]) | undefined;
        disableOnMobile?: boolean;
        shortcuts?: import("../ricos-types/shortcuts.js").KeyboardShortcut[];
        toolbar?: import("../ricos-types/plugin-types.js").PluginToolbarConfig<Record<string, any>> | undefined;
        floatingToolbarButton?: import("../ricos-types/plugin-types.js").FloatingToolbarButton;
        exports?: Partial<PluginExports>;
        dependencies?: EditorPluginType[];
        Provider?: React.ComponentType<{
            children: React.ReactNode;
            plugins: EditorPlugins;
        }>;
        GlobalComponent?: React.ComponentType;
    }[];
    constructor(services: PluginServices);
    register(plugin: EditorPluginType): void;
    unregister(plugin: EditorPlugin): EditorPlugin[];
    destroy(): void;
    filter(predicate: (plugin: EditorPlugin) => boolean): EditorPlugin[];
    asArray(): EditorPlugin[];
    getConfig(type: string): import("../ricos-types/plugin-types.js").LegacyEditorPluginConfig;
    getTextButtons(): TextButton[];
    getQuickActions(): QuickAction[];
    getAddButtons(): AddButton[];
    getFloatingToolbarButtons(): import("../ricos-types/plugin-types.js").FloatingToolbarButton[];
    getExports(): Partial<PluginExports>;
    getVisibleToolbar(selection: Selection, editor: IRicosEditor): import("./plugin-toolbar.js").RicosPluginToolbar | undefined;
    getTiptapExtensions(): (import("../ricos-types/tiptap.js").RicosFunctionalExtension<any, any> | import("../ricos-types/tiptap.js").RicosMarkExtension<any, any> | import("../ricos-types/tiptap.js").HtmlRicosNodeExtension<any, any> | import("../ricos-types/tiptap.js").ReactRicosNodeExtension<any, any>)[];
    getPluginProviders(): (import("react").ComponentClass<{
        children: React.ReactNode;
        plugins: EditorPlugins;
    }, any> | import("react").FunctionComponent<{
        children: React.ReactNode;
        plugins: EditorPlugins;
    }>)[];
    getPluginGlobalComponents(): (import("react").ComponentClass<{}, any> | import("react").FunctionComponent<{}>)[];
    isFooterToolbarDisabled(selection: $TSFixMe): boolean;
    private hasDuplicate;
    setPublicCommands(publicCommands: PublicCommands): void;
    getPublicCommands(): PublicCommands | undefined;
}
//# sourceMappingURL=editor-plugins.d.ts.map