import { Plugin, PluginKey } from "prosemirror-state";
import type { BlockNoteEditor } from "../../editor/BlockNoteEditor";
import { SuggestionsMenuState } from "../../extensions-shared/suggestion/SuggestionPlugin";
import { BlockSchema, InlineContentSchema, StyleSchema } from "../../schema";
import { EventEmitter } from "../../util/EventEmitter";
import { BaseSlashMenuItem } from "./BaseSlashMenuItem";
export declare const slashMenuPluginKey: PluginKey<any>;
export declare class SlashMenuProsemirrorPlugin<BSchema extends BlockSchema, I extends InlineContentSchema, S extends StyleSchema, SlashMenuItem extends BaseSlashMenuItem<BSchema, I, S>> extends EventEmitter<any> {
    readonly plugin: Plugin;
    readonly itemCallback: (item: SlashMenuItem) => void;
    constructor(editor: BlockNoteEditor<BSchema, I, S>, items: SlashMenuItem[]);
    onUpdate(callback: (state: SuggestionsMenuState<SlashMenuItem>) => void): () => void;
}
