export type EditorContext = { containerGetter: () => HTMLElement; emit: (cmd: string, ...params: any[]) => void; }; export type EditorData = any; export interface Editor { render(): any; format(data: EditorData): any; getData(): EditorData; getCatalogs(fresh: false | Boolean): Catalog[]; updateData(data: EditorData): void; execCommand(cmd: string, ...args: any[]): any; } export type Catalog = { catalogId: string; text: string; level: number; };