/// import { RTEPlugin as Plugin } from "./RTE"; import { IConfig, IDisplayOnOptions, IDynamicFunction, IElementTypeOptions, IOnFunction, IRteElementType, IRteParam } from "./RTE/types"; import { InitializationData } from "./types"; import UiLocation from "./uiLocation"; declare type PluginConfigCallback = (sdk: UiLocation) => Promise | IConfig; interface PluginDefinition { id: string; config: Partial; callbacks: Partial; asyncConfigCallback?: PluginConfigCallback; childBuilders: PluginBuilder[]; } declare class PluginBuilder { private id; private _config; private _callbacks; private _asyncConfigCallback?; private _childBuilders; constructor(id: string); title(title: string): PluginBuilder; icon(icon: React.ReactElement | null): PluginBuilder; display(display: IDisplayOnOptions | IDisplayOnOptions[]): PluginBuilder; elementType(elementType: IElementTypeOptions | IElementTypeOptions[] | IDynamicFunction): PluginBuilder; render(renderFn: (element: React.ReactElement, attrs: { [key: string]: any; }, path: number[], rte: IRteParam) => React.ReactElement): PluginBuilder; shouldOverride(shouldOverrideFn: (element: IRteElementType) => boolean): PluginBuilder; on(type: T, callback: IOnFunction[T]): PluginBuilder; configure(callback: PluginConfigCallback): PluginBuilder; addPlugins(...builders: PluginBuilder[]): PluginBuilder; /** * Builds and returns a definition of the RTE Plugin, ready to be materialized * into a concrete RTEPlugin instance later when the SDK and Plugin Factory are available. * This method no longer performs the actual creation of RTEPlugin instances. */ build(): PluginDefinition; } declare function registerPlugins(...pluginDefinitions: PluginDefinition[]): (context: InitializationData, rte: IRteParam) => Promise<{ [key: string]: Plugin; }>; export { IConfig, IDisplayOnOptions, IDynamicFunction, IElementTypeOptions, IOnFunction, IRteElementType, IRteParam, Plugin, PluginBuilder, PluginDefinition, registerPlugins }; //# sourceMappingURL=rtePlugin.d.ts.map