///
import { RenderElementProps } from 'slate-react';
import { IEditor } from "./interface";
import { htmlParser, slate } from "./index";
export declare const Bucket: {
Hook: Map;
Html: Map>>;
Parser: Map;
}>;
Render: Map>>;
Menu: Map;
Toolbar: Set;
Tipsbar: Map;
Leftbar: Map;
};
export declare module IBoot {
type Element = slate.BaseElement & {
type: T;
};
type Hook = (editor: IEditor) => IEditor;
type Html = (slateElement: E, editor: IEditor) => string;
type Parser = (node: htmlParser.HTMLElement, editor: IEditor) => E;
type Render = (slateElement: E, source: RenderElementProps, editor: IEditor) => JSX.Element;
type Menu = {
type: string;
title?: string;
label: (menu: Omit) => JSX.Element;
active: (editor: IEditor, slateElement?: slate.BaseElement) => boolean;
disable: (editor: IEditor, slateElement?: slate.BaseElement) => boolean;
exec: (editor: IEditor, slateElement?: slate.BaseElement) => Promise;
};
}
declare class Setup {
hook(type: E['type'], hook: IBoot.Hook): void;
html(type: E['type'], html: IBoot.Html): void;
parser(type: E['type'], selector: string, parse: IBoot.Parser): void;
render(type: E['type'], render: IBoot.Render): void;
menu(type: string, menu: Omit): void;
}
export declare class Boot {
constructor();
private static setup;
static factory(factory: (setup: Setup) => void): () => void;
static registryModules(...thisArguments: ReturnType[]): void;
}
export default Boot;