import type { Selection } from '@tiptap/pm/state'; import type { Editor } from '@tiptap/react'; import type { ReactElement } from 'react'; import type { IRicosEditor } from './editor'; import type { ToolbarButton } from './pluginTypes'; import type { RicosPluginToolbarNamesValues } from './ricos-plugin-toolbar-names'; import type { IToolbarItem, IToolbarItemConfigTiptap } from './toolbarTypes'; export type ToolbarButtonRenderers = Record ReactElement>; export type IsVisible = (selection: Selection, editor: IRicosEditor) => boolean; export type ResolveReferenceElement = ((tiptapEditor: Editor) => HTMLElement | null) | undefined; export interface PluginToolbar { pluginType: RicosPluginToolbarNamesValues; getButtons: () => PluginToolbarButton[]; toToolbarItemsConfig: () => IToolbarItemConfigTiptap[]; getToolbarButtonsRenderers: () => ToolbarButtonRenderers; isVisible: (selection: Selection, editor: IRicosEditor) => boolean; getReferenceElementResolver: () => ResolveReferenceElement; register: () => void; unregister: () => void; } export interface PluginToolbarButton { getButton: () => ToolbarButton; equals: (button: PluginToolbarButton) => boolean; toToolbarItemConfig: () => IToolbarItemConfigTiptap; getRenderer: () => ToolbarButtonRenderers; register: () => void; unregister: () => void; } //# sourceMappingURL=plugin-toolbar.d.ts.map