import type { Plugin, PluginDOMEvents, PluginElementRenderProps, PluginInputElements, PluginLifeCycleEvents, PluginOptions } from './types'; import type { SlateElement } from '../editor/types'; export type ExtendPluginRender = { [x in TKeys]: (props: PluginElementRenderProps) => JSX.Element; }; export type ExtendPluginElementConfig = { render?: (props: PluginElementRenderProps) => JSX.Element; props?: Record; injectElementsFromPlugins?: YooptaPlugin[]; placeholder?: string; }; export type ExtendPlugin, TOptions> = { options?: Partial>; events?: Partial; lifecycle?: Partial; injectElementsFromPlugins?: YooptaPlugin[]; elements?: { [K in keyof TElementMap]?: ExtendPluginElementConfig; }; }; type PluginInput, TOptions> = Omit, 'elements'> & { elements: PluginInputElements | Plugin['elements']; }; export declare class YooptaPlugin, TOptions = Record> { private readonly plugin; constructor(pluginInput: PluginInput); get getPlugin(): Plugin; extend(extendPlugin: ExtendPlugin): YooptaPlugin; } export {}; //# sourceMappingURL=create-yoopta-plugin.d.ts.map