]> BookStack Code Mirror - bookstack/blob - public/libs/tinymce/tinymce.d.ts
f6fd89c3e3dc4882c34be01cac048a6095f3b7cd
[bookstack] / public / libs / tinymce / tinymce.d.ts
1 interface StringPathBookmark {
2     start: string;
3     end?: string;
4     forward?: boolean;
5 }
6 interface RangeBookmark {
7     rng: Range;
8     forward?: boolean;
9 }
10 interface IdBookmark {
11     id: string;
12     keep?: boolean;
13     forward?: boolean;
14 }
15 interface IndexBookmark {
16     name: string;
17     index: number;
18 }
19 interface PathBookmark {
20     start: number[];
21     end?: number[];
22     isFakeCaret?: boolean;
23     forward?: boolean;
24 }
25 type Bookmark = StringPathBookmark | RangeBookmark | IdBookmark | IndexBookmark | PathBookmark;
26 type NormalizedEvent<E, T = any> = E & {
27     readonly type: string;
28     readonly target: T;
29     readonly isDefaultPrevented: () => boolean;
30     readonly preventDefault: () => void;
31     readonly isPropagationStopped: () => boolean;
32     readonly stopPropagation: () => void;
33     readonly isImmediatePropagationStopped: () => boolean;
34     readonly stopImmediatePropagation: () => void;
35 };
36 type MappedEvent<T extends {}, K extends string> = K extends keyof T ? T[K] : any;
37 interface NativeEventMap {
38     'beforepaste': Event;
39     'blur': FocusEvent;
40     'beforeinput': InputEvent;
41     'click': MouseEvent;
42     'compositionend': Event;
43     'compositionstart': Event;
44     'compositionupdate': Event;
45     'contextmenu': PointerEvent;
46     'copy': ClipboardEvent;
47     'cut': ClipboardEvent;
48     'dblclick': MouseEvent;
49     'drag': DragEvent;
50     'dragdrop': DragEvent;
51     'dragend': DragEvent;
52     'draggesture': DragEvent;
53     'dragover': DragEvent;
54     'dragstart': DragEvent;
55     'drop': DragEvent;
56     'focus': FocusEvent;
57     'focusin': FocusEvent;
58     'focusout': FocusEvent;
59     'input': InputEvent;
60     'keydown': KeyboardEvent;
61     'keypress': KeyboardEvent;
62     'keyup': KeyboardEvent;
63     'mousedown': MouseEvent;
64     'mouseenter': MouseEvent;
65     'mouseleave': MouseEvent;
66     'mousemove': MouseEvent;
67     'mouseout': MouseEvent;
68     'mouseover': MouseEvent;
69     'mouseup': MouseEvent;
70     'paste': ClipboardEvent;
71     'selectionchange': Event;
72     'submit': Event;
73     'touchend': TouchEvent;
74     'touchmove': TouchEvent;
75     'touchstart': TouchEvent;
76     'touchcancel': TouchEvent;
77     'wheel': WheelEvent;
78 }
79 type EditorEvent<T> = NormalizedEvent<T>;
80 interface EventDispatcherSettings {
81     scope?: any;
82     toggleEvent?: (name: string, state: boolean) => void | boolean;
83     beforeFire?: <T>(args: EditorEvent<T>) => void;
84 }
85 interface EventDispatcherConstructor<T extends {}> {
86     readonly prototype: EventDispatcher<T>;
87     new (settings?: EventDispatcherSettings): EventDispatcher<T>;
88     isNative: (name: string) => boolean;
89 }
90 declare class EventDispatcher<T extends {}> {
91     static isNative(name: string): boolean;
92     private readonly settings;
93     private readonly scope;
94     private readonly toggleEvent;
95     private bindings;
96     constructor(settings?: EventDispatcherSettings);
97     fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
98     dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U): EditorEvent<U>;
99     on<K extends string>(name: K, callback: false | ((event: EditorEvent<MappedEvent<T, K>>) => void | boolean), prepend?: boolean, extra?: {}): this;
100     off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): this;
101     once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): this;
102     has(name: string): boolean;
103 }
104 declare const enum UndoLevelType {
105     Fragmented = "fragmented",
106     Complete = "complete"
107 }
108 interface BaseUndoLevel {
109     type: UndoLevelType;
110     bookmark: Bookmark | null;
111     beforeBookmark: Bookmark | null;
112 }
113 interface FragmentedUndoLevel extends BaseUndoLevel {
114     type: UndoLevelType.Fragmented;
115     fragments: string[];
116     content: '';
117 }
118 interface CompleteUndoLevel extends BaseUndoLevel {
119     type: UndoLevelType.Complete;
120     fragments: null;
121     content: string;
122 }
123 type NewUndoLevel = CompleteUndoLevel | FragmentedUndoLevel;
124 type UndoLevel = NewUndoLevel & {
125     bookmark: Bookmark;
126 };
127 interface UndoManager {
128     data: UndoLevel[];
129     typing: boolean;
130     add: (level?: Partial<UndoLevel>, event?: EditorEvent<any>) => UndoLevel | null;
131     dispatchChange: () => void;
132     beforeChange: () => void;
133     undo: () => UndoLevel | undefined;
134     redo: () => UndoLevel | undefined;
135     clear: () => void;
136     reset: () => void;
137     hasUndo: () => boolean;
138     hasRedo: () => boolean;
139     transact: (callback: () => void) => UndoLevel | null;
140     ignore: (callback: () => void) => void;
141     extra: (callback1: () => void, callback2: () => void) => void;
142 }
143 type SchemaType = 'html4' | 'html5' | 'html5-strict';
144 interface ElementSettings {
145     block_elements?: string;
146     boolean_attributes?: string;
147     move_caret_before_on_enter_elements?: string;
148     non_empty_elements?: string;
149     self_closing_elements?: string;
150     text_block_elements?: string;
151     text_inline_elements?: string;
152     void_elements?: string;
153     whitespace_elements?: string;
154     transparent_elements?: string;
155 }
156 interface SchemaSettings extends ElementSettings {
157     custom_elements?: string;
158     extended_valid_elements?: string;
159     invalid_elements?: string;
160     invalid_styles?: string | Record<string, string>;
161     schema?: SchemaType;
162     valid_children?: string;
163     valid_classes?: string | Record<string, string>;
164     valid_elements?: string;
165     valid_styles?: string | Record<string, string>;
166     verify_html?: boolean;
167     padd_empty_block_inline_children?: boolean;
168 }
169 interface Attribute {
170     required?: boolean;
171     defaultValue?: string;
172     forcedValue?: string;
173     validValues?: Record<string, {}>;
174 }
175 interface DefaultAttribute {
176     name: string;
177     value: string;
178 }
179 interface AttributePattern extends Attribute {
180     pattern: RegExp;
181 }
182 interface ElementRule {
183     attributes: Record<string, Attribute>;
184     attributesDefault?: DefaultAttribute[];
185     attributesForced?: DefaultAttribute[];
186     attributesOrder: string[];
187     attributePatterns?: AttributePattern[];
188     attributesRequired?: string[];
189     paddEmpty?: boolean;
190     removeEmpty?: boolean;
191     removeEmptyAttrs?: boolean;
192     paddInEmptyBlock?: boolean;
193 }
194 interface SchemaElement extends ElementRule {
195     outputName?: string;
196     parentsRequired?: string[];
197     pattern?: RegExp;
198 }
199 interface SchemaMap {
200     [name: string]: {};
201 }
202 interface SchemaRegExpMap {
203     [name: string]: RegExp;
204 }
205 interface Schema {
206     type: SchemaType;
207     children: Record<string, SchemaMap>;
208     elements: Record<string, SchemaElement>;
209     getValidStyles: () => Record<string, string[]> | undefined;
210     getValidClasses: () => Record<string, SchemaMap> | undefined;
211     getBlockElements: () => SchemaMap;
212     getInvalidStyles: () => Record<string, SchemaMap> | undefined;
213     getVoidElements: () => SchemaMap;
214     getTextBlockElements: () => SchemaMap;
215     getTextInlineElements: () => SchemaMap;
216     getBoolAttrs: () => SchemaMap;
217     getElementRule: (name: string) => SchemaElement | undefined;
218     getSelfClosingElements: () => SchemaMap;
219     getNonEmptyElements: () => SchemaMap;
220     getMoveCaretBeforeOnEnterElements: () => SchemaMap;
221     getWhitespaceElements: () => SchemaMap;
222     getTransparentElements: () => SchemaMap;
223     getSpecialElements: () => SchemaRegExpMap;
224     isValidChild: (name: string, child: string) => boolean;
225     isValid: (name: string, attr?: string) => boolean;
226     getCustomElements: () => SchemaMap;
227     addValidElements: (validElements: string) => void;
228     setValidElements: (validElements: string) => void;
229     addCustomElements: (customElements: string) => void;
230     addValidChildren: (validChildren: any) => void;
231 }
232 type Attributes$1 = Array<{
233     name: string;
234     value: string;
235 }> & {
236     map: Record<string, string>;
237 };
238 interface AstNodeConstructor {
239     readonly prototype: AstNode;
240     new (name: string, type: number): AstNode;
241     create(name: string, attrs?: Record<string, string>): AstNode;
242 }
243 declare class AstNode {
244     static create(name: string, attrs?: Record<string, string>): AstNode;
245     name: string;
246     type: number;
247     attributes?: Attributes$1;
248     value?: string;
249     parent?: AstNode | null;
250     firstChild?: AstNode | null;
251     lastChild?: AstNode | null;
252     next?: AstNode | null;
253     prev?: AstNode | null;
254     raw?: boolean;
255     constructor(name: string, type: number);
256     replace(node: AstNode): AstNode;
257     attr(name: string, value: string | null | undefined): AstNode | undefined;
258     attr(name: Record<string, string | null | undefined> | undefined): AstNode | undefined;
259     attr(name: string): string | undefined;
260     clone(): AstNode;
261     wrap(wrapper: AstNode): AstNode;
262     unwrap(): void;
263     remove(): AstNode;
264     append(node: AstNode): AstNode;
265     insert(node: AstNode, refNode: AstNode, before?: boolean): AstNode;
266     getAll(name: string): AstNode[];
267     children(): AstNode[];
268     empty(): AstNode;
269     isEmpty(elements: SchemaMap, whitespace?: SchemaMap, predicate?: (node: AstNode) => boolean): boolean;
270     walk(prev?: boolean): AstNode | null | undefined;
271 }
272 type Content = string | AstNode;
273 type ContentFormat = 'raw' | 'text' | 'html' | 'tree';
274 interface GetContentArgs {
275     format: ContentFormat;
276     get: boolean;
277     getInner: boolean;
278     no_events?: boolean;
279     save?: boolean;
280     source_view?: boolean;
281     [key: string]: any;
282 }
283 interface SetContentArgs {
284     format: string;
285     set: boolean;
286     content: Content;
287     no_events?: boolean;
288     no_selection?: boolean;
289     paste?: boolean;
290     load?: boolean;
291     initial?: boolean;
292     [key: string]: any;
293 }
294 interface GetSelectionContentArgs extends GetContentArgs {
295     selection?: boolean;
296     contextual?: boolean;
297 }
298 interface SetSelectionContentArgs extends SetContentArgs {
299     content: string;
300     selection?: boolean;
301 }
302 interface BlobInfoData {
303     id?: string;
304     name?: string;
305     filename?: string;
306     blob: Blob;
307     base64: string;
308     blobUri?: string;
309     uri?: string;
310 }
311 interface BlobInfo {
312     id: () => string;
313     name: () => string;
314     filename: () => string;
315     blob: () => Blob;
316     base64: () => string;
317     blobUri: () => string;
318     uri: () => string | undefined;
319 }
320 interface BlobCache {
321     create: {
322         (o: BlobInfoData): BlobInfo;
323         (id: string, blob: Blob, base64: string, name?: string, filename?: string): BlobInfo;
324     };
325     add: (blobInfo: BlobInfo) => void;
326     get: (id: string) => BlobInfo | undefined;
327     getByUri: (blobUri: string) => BlobInfo | undefined;
328     getByData: (base64: string, type: string) => BlobInfo | undefined;
329     findFirst: (predicate: (blobInfo: BlobInfo) => boolean) => BlobInfo | undefined;
330     removeByUri: (blobUri: string) => void;
331     destroy: () => void;
332 }
333 interface BlobInfoImagePair {
334     image: HTMLImageElement;
335     blobInfo: BlobInfo;
336 }
337 declare class NodeChange {
338     private readonly editor;
339     private lastPath;
340     constructor(editor: Editor);
341     nodeChanged(args?: Record<string, any>): void;
342     private isSameElementPath;
343 }
344 interface SelectionOverrides {
345     showCaret: (direction: number, node: HTMLElement, before: boolean, scrollIntoView?: boolean) => Range | null;
346     showBlockCaretContainer: (blockCaretContainer: HTMLElement) => void;
347     hideFakeCaret: () => void;
348     destroy: () => void;
349 }
350 interface Quirks {
351     refreshContentEditable(): void;
352     isHidden(): boolean;
353 }
354 type DecoratorData = Record<string, any>;
355 type Decorator = (uid: string, data: DecoratorData) => {
356     attributes?: {};
357     classes?: string[];
358 };
359 type AnnotationListener = (state: boolean, name: string, data?: {
360     uid: string;
361     nodes: any[];
362 }) => void;
363 type AnnotationListenerApi = AnnotationListener;
364 interface AnnotatorSettings {
365     decorate: Decorator;
366     persistent?: boolean;
367 }
368 interface Annotator {
369     register: (name: string, settings: AnnotatorSettings) => void;
370     annotate: (name: string, data: DecoratorData) => void;
371     annotationChanged: (name: string, f: AnnotationListenerApi) => void;
372     remove: (name: string) => void;
373     removeAll: (name: string) => void;
374     getAll: (name: string) => Record<string, Element[]>;
375 }
376 interface GeomRect {
377     readonly x: number;
378     readonly y: number;
379     readonly w: number;
380     readonly h: number;
381 }
382 interface Rect {
383     inflate: (rect: GeomRect, w: number, h: number) => GeomRect;
384     relativePosition: (rect: GeomRect, targetRect: GeomRect, rel: string) => GeomRect;
385     findBestRelativePosition: (rect: GeomRect, targetRect: GeomRect, constrainRect: GeomRect, rels: string[]) => string | null;
386     intersect: (rect: GeomRect, cropRect: GeomRect) => GeomRect | null;
387     clamp: (rect: GeomRect, clampRect: GeomRect, fixedSize?: boolean) => GeomRect;
388     create: (x: number, y: number, w: number, h: number) => GeomRect;
389     fromClientRect: (clientRect: DOMRect) => GeomRect;
390 }
391 interface NotificationManagerImpl {
392     open: (spec: NotificationSpec, closeCallback: () => void) => NotificationApi;
393     close: <T extends NotificationApi>(notification: T) => void;
394     getArgs: <T extends NotificationApi>(notification: T) => NotificationSpec;
395 }
396 interface NotificationSpec {
397     type?: 'info' | 'warning' | 'error' | 'success';
398     text: string;
399     icon?: string;
400     progressBar?: boolean;
401     timeout?: number;
402     closeButton?: boolean;
403 }
404 interface NotificationApi {
405     close: () => void;
406     progressBar: {
407         value: (percent: number) => void;
408     };
409     text: (text: string) => void;
410     reposition: () => void;
411     getEl: () => HTMLElement;
412     settings: NotificationSpec;
413 }
414 interface NotificationManager {
415     open: (spec: NotificationSpec) => NotificationApi;
416     close: () => void;
417     getNotifications: () => NotificationApi[];
418 }
419 interface UploadFailure {
420     message: string;
421     remove?: boolean;
422 }
423 type ProgressFn = (percent: number) => void;
424 type UploadHandler = (blobInfo: BlobInfo, progress: ProgressFn) => Promise<string>;
425 interface UploadResult$2 {
426     url: string;
427     blobInfo: BlobInfo;
428     status: boolean;
429     error?: UploadFailure;
430 }
431 interface RawPattern {
432     start?: any;
433     end?: any;
434     format?: any;
435     cmd?: any;
436     value?: any;
437     replacement?: any;
438 }
439 interface InlineBasePattern {
440     readonly start: string;
441     readonly end: string;
442 }
443 interface InlineFormatPattern extends InlineBasePattern {
444     readonly type: 'inline-format';
445     readonly format: string[];
446 }
447 interface InlineCmdPattern extends InlineBasePattern {
448     readonly type: 'inline-command';
449     readonly cmd: string;
450     readonly value?: any;
451 }
452 type InlinePattern = InlineFormatPattern | InlineCmdPattern;
453 interface BlockBasePattern {
454     readonly start: string;
455 }
456 interface BlockFormatPattern extends BlockBasePattern {
457     readonly type: 'block-format';
458     readonly format: string;
459 }
460 interface BlockCmdPattern extends BlockBasePattern {
461     readonly type: 'block-command';
462     readonly cmd: string;
463     readonly value?: any;
464 }
465 type BlockPattern = BlockFormatPattern | BlockCmdPattern;
466 type Pattern = InlinePattern | BlockPattern;
467 interface DynamicPatternContext {
468     readonly text: string;
469     readonly block: Element;
470 }
471 type DynamicPatternsLookup = (ctx: DynamicPatternContext) => Pattern[];
472 type RawDynamicPatternsLookup = (ctx: DynamicPatternContext) => RawPattern[];
473 interface AlertBannerSpec {
474     type: 'alertbanner';
475     level: 'info' | 'warn' | 'error' | 'success';
476     text: string;
477     icon: string;
478     url?: string;
479 }
480 interface ButtonSpec {
481     type: 'button';
482     text: string;
483     enabled?: boolean;
484     primary?: boolean;
485     name?: string;
486     icon?: string;
487     borderless?: boolean;
488     buttonType?: 'primary' | 'secondary' | 'toolbar';
489 }
490 interface FormComponentSpec {
491     type: string;
492     name: string;
493 }
494 interface FormComponentWithLabelSpec extends FormComponentSpec {
495     label?: string;
496 }
497 interface CheckboxSpec extends FormComponentSpec {
498     type: 'checkbox';
499     label: string;
500     enabled?: boolean;
501 }
502 interface CollectionSpec extends FormComponentWithLabelSpec {
503     type: 'collection';
504 }
505 interface CollectionItem {
506     value: string;
507     text: string;
508     icon: string;
509 }
510 interface ColorInputSpec extends FormComponentWithLabelSpec {
511     type: 'colorinput';
512     storageKey?: string;
513 }
514 interface ColorPickerSpec extends FormComponentWithLabelSpec {
515     type: 'colorpicker';
516 }
517 interface CustomEditorInit {
518     setValue: (value: string) => void;
519     getValue: () => string;
520     destroy: () => void;
521 }
522 type CustomEditorInitFn = (elm: HTMLElement, settings: any) => Promise<CustomEditorInit>;
523 interface CustomEditorOldSpec extends FormComponentSpec {
524     type: 'customeditor';
525     tag?: string;
526     init: (e: HTMLElement) => Promise<CustomEditorInit>;
527 }
528 interface CustomEditorNewSpec extends FormComponentSpec {
529     type: 'customeditor';
530     tag?: string;
531     scriptId: string;
532     scriptUrl: string;
533     settings?: any;
534 }
535 type CustomEditorSpec = CustomEditorOldSpec | CustomEditorNewSpec;
536 interface DropZoneSpec extends FormComponentWithLabelSpec {
537     type: 'dropzone';
538 }
539 interface GridSpec {
540     type: 'grid';
541     columns: number;
542     items: BodyComponentSpec[];
543 }
544 interface HtmlPanelSpec {
545     type: 'htmlpanel';
546     html: string;
547     presets?: 'presentation' | 'document';
548 }
549 interface IframeSpec extends FormComponentWithLabelSpec {
550     type: 'iframe';
551     sandboxed?: boolean;
552     transparent?: boolean;
553 }
554 interface ImagePreviewSpec extends FormComponentSpec {
555     type: 'imagepreview';
556     height?: string;
557 }
558 interface InputSpec extends FormComponentWithLabelSpec {
559     type: 'input';
560     inputMode?: string;
561     placeholder?: string;
562     maximized?: boolean;
563     enabled?: boolean;
564 }
565 interface LabelSpec {
566     type: 'label';
567     label: string;
568     items: BodyComponentSpec[];
569 }
570 interface ListBoxSingleItemSpec {
571     text: string;
572     value: string;
573 }
574 interface ListBoxNestedItemSpec {
575     text: string;
576     items: ListBoxItemSpec[];
577 }
578 type ListBoxItemSpec = ListBoxNestedItemSpec | ListBoxSingleItemSpec;
579 interface ListBoxSpec extends FormComponentWithLabelSpec {
580     type: 'listbox';
581     items: ListBoxItemSpec[];
582     disabled?: boolean;
583 }
584 interface PanelSpec {
585     type: 'panel';
586     classes?: string[];
587     items: BodyComponentSpec[];
588 }
589 interface SelectBoxItemSpec {
590     text: string;
591     value: string;
592 }
593 interface SelectBoxSpec extends FormComponentWithLabelSpec {
594     type: 'selectbox';
595     items: SelectBoxItemSpec[];
596     size?: number;
597     enabled?: boolean;
598 }
599 interface SizeInputSpec extends FormComponentWithLabelSpec {
600     type: 'sizeinput';
601     constrain?: boolean;
602     enabled?: boolean;
603 }
604 interface SliderSpec extends FormComponentSpec {
605     type: 'slider';
606     label: string;
607     min?: number;
608     max?: number;
609 }
610 interface TableSpec {
611     type: 'table';
612     header: string[];
613     cells: string[][];
614 }
615 interface TextAreaSpec extends FormComponentWithLabelSpec {
616     type: 'textarea';
617     placeholder?: string;
618     maximized?: boolean;
619     enabled?: boolean;
620 }
621 interface BaseToolbarButtonSpec<I extends BaseToolbarButtonInstanceApi> {
622     enabled?: boolean;
623     tooltip?: string;
624     icon?: string;
625     text?: string;
626     onSetup?: (api: I) => (api: I) => void;
627 }
628 interface BaseToolbarButtonInstanceApi {
629     isEnabled: () => boolean;
630     setEnabled: (state: boolean) => void;
631     setText: (text: string) => void;
632     setIcon: (icon: string) => void;
633 }
634 interface ToolbarButtonSpec extends BaseToolbarButtonSpec<ToolbarButtonInstanceApi> {
635     type?: 'button';
636     onAction: (api: ToolbarButtonInstanceApi) => void;
637 }
638 interface ToolbarButtonInstanceApi extends BaseToolbarButtonInstanceApi {
639 }
640 interface ToolbarGroupSetting {
641     name: string;
642     items: string[];
643 }
644 type ToolbarConfig = string | ToolbarGroupSetting[];
645 interface GroupToolbarButtonInstanceApi extends BaseToolbarButtonInstanceApi {
646 }
647 interface GroupToolbarButtonSpec extends BaseToolbarButtonSpec<GroupToolbarButtonInstanceApi> {
648     type?: 'grouptoolbarbutton';
649     items?: ToolbarConfig;
650 }
651 interface CardImageSpec {
652     type: 'cardimage';
653     src: string;
654     alt?: string;
655     classes?: string[];
656 }
657 interface CardTextSpec {
658     type: 'cardtext';
659     text: string;
660     name?: string;
661     classes?: string[];
662 }
663 type CardItemSpec = CardContainerSpec | CardImageSpec | CardTextSpec;
664 type CardContainerDirection = 'vertical' | 'horizontal';
665 type CardContainerAlign = 'left' | 'right';
666 type CardContainerValign = 'top' | 'middle' | 'bottom';
667 interface CardContainerSpec {
668     type: 'cardcontainer';
669     items: CardItemSpec[];
670     direction?: CardContainerDirection;
671     align?: CardContainerAlign;
672     valign?: CardContainerValign;
673 }
674 interface CommonMenuItemSpec {
675     enabled?: boolean;
676     text?: string;
677     value?: string;
678     meta?: Record<string, any>;
679     shortcut?: string;
680 }
681 interface CommonMenuItemInstanceApi {
682     isEnabled: () => boolean;
683     setEnabled: (state: boolean) => void;
684 }
685 interface CardMenuItemInstanceApi extends CommonMenuItemInstanceApi {
686 }
687 interface CardMenuItemSpec extends Omit<CommonMenuItemSpec, 'text' | 'shortcut'> {
688     type: 'cardmenuitem';
689     label?: string;
690     items: CardItemSpec[];
691     onSetup?: (api: CardMenuItemInstanceApi) => (api: CardMenuItemInstanceApi) => void;
692     onAction?: (api: CardMenuItemInstanceApi) => void;
693 }
694 interface ChoiceMenuItemSpec extends CommonMenuItemSpec {
695     type?: 'choiceitem';
696     icon?: string;
697 }
698 interface ChoiceMenuItemInstanceApi extends CommonMenuItemInstanceApi {
699     isActive: () => boolean;
700     setActive: (state: boolean) => void;
701 }
702 interface ContextMenuItem extends CommonMenuItemSpec {
703     text: string;
704     icon?: string;
705     type?: 'item';
706     onAction: () => void;
707 }
708 interface ContextSubMenu extends CommonMenuItemSpec {
709     type: 'submenu';
710     text: string;
711     icon?: string;
712     getSubmenuItems: () => string | Array<ContextMenuContents>;
713 }
714 type ContextMenuContents = string | ContextMenuItem | SeparatorMenuItemSpec | ContextSubMenu;
715 interface ContextMenuApi {
716     update: (element: Element) => string | Array<ContextMenuContents>;
717 }
718 interface FancyActionArgsMap {
719     'inserttable': {
720         numRows: number;
721         numColumns: number;
722     };
723     'colorswatch': {
724         value: string;
725     };
726 }
727 interface BaseFancyMenuItemSpec<T extends keyof FancyActionArgsMap> {
728     type: 'fancymenuitem';
729     fancytype: T;
730     initData?: Record<string, unknown>;
731     onAction?: (data: FancyActionArgsMap[T]) => void;
732 }
733 interface InsertTableMenuItemSpec extends BaseFancyMenuItemSpec<'inserttable'> {
734     fancytype: 'inserttable';
735     initData?: {};
736 }
737 interface ColorSwatchMenuItemSpec extends BaseFancyMenuItemSpec<'colorswatch'> {
738     fancytype: 'colorswatch';
739     select?: (value: string) => boolean;
740     initData?: {
741         allowCustomColors?: boolean;
742         colors?: ChoiceMenuItemSpec[];
743         storageKey?: string;
744     };
745 }
746 type FancyMenuItemSpec = InsertTableMenuItemSpec | ColorSwatchMenuItemSpec;
747 interface MenuItemSpec extends CommonMenuItemSpec {
748     type?: 'menuitem';
749     icon?: string;
750     onSetup?: (api: MenuItemInstanceApi) => (api: MenuItemInstanceApi) => void;
751     onAction?: (api: MenuItemInstanceApi) => void;
752 }
753 interface MenuItemInstanceApi extends CommonMenuItemInstanceApi {
754 }
755 interface SeparatorMenuItemSpec {
756     type?: 'separator';
757     text?: string;
758 }
759 interface ToggleMenuItemSpec extends CommonMenuItemSpec {
760     type?: 'togglemenuitem';
761     icon?: string;
762     active?: boolean;
763     onSetup?: (api: ToggleMenuItemInstanceApi) => void;
764     onAction: (api: ToggleMenuItemInstanceApi) => void;
765 }
766 interface ToggleMenuItemInstanceApi extends CommonMenuItemInstanceApi {
767     isActive: () => boolean;
768     setActive: (state: boolean) => void;
769 }
770 type NestedMenuItemContents = string | MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec | SeparatorMenuItemSpec | FancyMenuItemSpec;
771 interface NestedMenuItemSpec extends CommonMenuItemSpec {
772     type?: 'nestedmenuitem';
773     icon?: string;
774     getSubmenuItems: () => string | Array<NestedMenuItemContents>;
775     onSetup?: (api: NestedMenuItemInstanceApi) => (api: NestedMenuItemInstanceApi) => void;
776 }
777 interface NestedMenuItemInstanceApi extends CommonMenuItemInstanceApi {
778     setIconFill: (id: string, value: string) => void;
779 }
780 type MenuButtonItemTypes = NestedMenuItemContents;
781 type SuccessCallback$1 = (menu: string | MenuButtonItemTypes[]) => void;
782 interface MenuButtonFetchContext {
783     pattern: string;
784 }
785 interface BaseMenuButtonSpec {
786     text?: string;
787     tooltip?: string;
788     icon?: string;
789     search?: boolean | {
790         placeholder?: string;
791     };
792     fetch: (success: SuccessCallback$1, fetchContext: MenuButtonFetchContext, api: BaseMenuButtonInstanceApi) => void;
793     onSetup?: (api: BaseMenuButtonInstanceApi) => (api: BaseMenuButtonInstanceApi) => void;
794 }
795 interface BaseMenuButtonInstanceApi {
796     isEnabled: () => boolean;
797     setEnabled: (state: boolean) => void;
798     isActive: () => boolean;
799     setActive: (state: boolean) => void;
800     setText: (text: string) => void;
801     setIcon: (icon: string) => void;
802 }
803 interface ToolbarMenuButtonSpec extends BaseMenuButtonSpec {
804     type?: 'menubutton';
805     onSetup?: (api: ToolbarMenuButtonInstanceApi) => (api: ToolbarMenuButtonInstanceApi) => void;
806 }
807 interface ToolbarMenuButtonInstanceApi extends BaseMenuButtonInstanceApi {
808 }
809 type ToolbarSplitButtonItemTypes = ChoiceMenuItemSpec | SeparatorMenuItemSpec;
810 type SuccessCallback = (menu: ToolbarSplitButtonItemTypes[]) => void;
811 type SelectPredicate = (value: string) => boolean;
812 type PresetTypes = 'color' | 'normal' | 'listpreview';
813 type ColumnTypes$1 = number | 'auto';
814 interface ToolbarSplitButtonSpec {
815     type?: 'splitbutton';
816     tooltip?: string;
817     icon?: string;
818     text?: string;
819     select?: SelectPredicate;
820     presets?: PresetTypes;
821     columns?: ColumnTypes$1;
822     fetch: (success: SuccessCallback) => void;
823     onSetup?: (api: ToolbarSplitButtonInstanceApi) => (api: ToolbarSplitButtonInstanceApi) => void;
824     onAction: (api: ToolbarSplitButtonInstanceApi) => void;
825     onItemAction: (api: ToolbarSplitButtonInstanceApi, value: string) => void;
826 }
827 interface ToolbarSplitButtonInstanceApi {
828     isEnabled: () => boolean;
829     setEnabled: (state: boolean) => void;
830     setIconFill: (id: string, value: string) => void;
831     isActive: () => boolean;
832     setActive: (state: boolean) => void;
833     setText: (text: string) => void;
834     setIcon: (icon: string) => void;
835 }
836 interface BaseToolbarToggleButtonSpec<I extends BaseToolbarButtonInstanceApi> extends BaseToolbarButtonSpec<I> {
837     active?: boolean;
838 }
839 interface BaseToolbarToggleButtonInstanceApi extends BaseToolbarButtonInstanceApi {
840     isActive: () => boolean;
841     setActive: (state: boolean) => void;
842 }
843 interface ToolbarToggleButtonSpec extends BaseToolbarToggleButtonSpec<ToolbarToggleButtonInstanceApi> {
844     type?: 'togglebutton';
845     onAction: (api: ToolbarToggleButtonInstanceApi) => void;
846 }
847 interface ToolbarToggleButtonInstanceApi extends BaseToolbarToggleButtonInstanceApi {
848 }
849 type Id = string;
850 interface TreeSpec {
851     type: 'tree';
852     items: TreeItemSpec[];
853     onLeafAction?: (id: Id) => void;
854     defaultExpandedIds?: Id[];
855     onToggleExpand?: (expandedIds: Id[], { expanded, node }: {
856         expanded: boolean;
857         node: Id;
858     }) => void;
859     defaultSelectedId?: Id;
860 }
861 interface BaseTreeItemSpec {
862     title: string;
863     id: Id;
864     menu?: ToolbarMenuButtonSpec;
865 }
866 interface DirectorySpec extends BaseTreeItemSpec {
867     type: 'directory';
868     children: TreeItemSpec[];
869 }
870 interface LeafSpec extends BaseTreeItemSpec {
871     type: 'leaf';
872 }
873 type TreeItemSpec = DirectorySpec | LeafSpec;
874 interface UrlInputSpec extends FormComponentWithLabelSpec {
875     type: 'urlinput';
876     filetype?: 'image' | 'media' | 'file';
877     enabled?: boolean;
878 }
879 interface UrlInputData {
880     value: string;
881     meta: {
882         text?: string;
883     };
884 }
885 type BodyComponentSpec = BarSpec | ButtonSpec | CheckboxSpec | TextAreaSpec | InputSpec | ListBoxSpec | SelectBoxSpec | SizeInputSpec | SliderSpec | IframeSpec | HtmlPanelSpec | UrlInputSpec | DropZoneSpec | ColorInputSpec | GridSpec | ColorPickerSpec | ImagePreviewSpec | AlertBannerSpec | CollectionSpec | LabelSpec | TableSpec | TreeSpec | PanelSpec | CustomEditorSpec;
886 interface BarSpec {
887     type: 'bar';
888     items: BodyComponentSpec[];
889 }
890 interface DialogToggleMenuItemSpec extends CommonMenuItemSpec {
891     type?: 'togglemenuitem';
892     name: string;
893 }
894 type DialogFooterMenuButtonItemSpec = DialogToggleMenuItemSpec;
895 interface BaseDialogFooterButtonSpec {
896     name?: string;
897     align?: 'start' | 'end';
898     primary?: boolean;
899     enabled?: boolean;
900     icon?: string;
901     buttonType?: 'primary' | 'secondary';
902 }
903 interface DialogFooterNormalButtonSpec extends BaseDialogFooterButtonSpec {
904     type: 'submit' | 'cancel' | 'custom';
905     text: string;
906 }
907 interface DialogFooterMenuButtonSpec extends BaseDialogFooterButtonSpec {
908     type: 'menu';
909     text?: string;
910     tooltip?: string;
911     icon?: string;
912     items: DialogFooterMenuButtonItemSpec[];
913 }
914 interface DialogFooterToggleButtonSpec extends BaseDialogFooterButtonSpec {
915     type: 'togglebutton';
916     tooltip?: string;
917     icon?: string;
918     text?: string;
919     active?: boolean;
920 }
921 type DialogFooterButtonSpec = DialogFooterNormalButtonSpec | DialogFooterMenuButtonSpec | DialogFooterToggleButtonSpec;
922 interface TabSpec {
923     name?: string;
924     title: string;
925     items: BodyComponentSpec[];
926 }
927 interface TabPanelSpec {
928     type: 'tabpanel';
929     tabs: TabSpec[];
930 }
931 type DialogDataItem = any;
932 type DialogData = Record<string, DialogDataItem>;
933 interface DialogInstanceApi<T extends DialogData> {
934     getData: () => T;
935     setData: (data: Partial<T>) => void;
936     setEnabled: (name: string, state: boolean) => void;
937     focus: (name: string) => void;
938     showTab: (name: string) => void;
939     redial: (nu: DialogSpec<T>) => void;
940     block: (msg: string) => void;
941     unblock: () => void;
942     toggleFullscreen: () => void;
943     close: () => void;
944 }
945 interface DialogActionDetails {
946     name: string;
947     value?: any;
948 }
949 interface DialogChangeDetails<T> {
950     name: keyof T;
951 }
952 interface DialogTabChangeDetails {
953     newTabName: string;
954     oldTabName: string;
955 }
956 type DialogActionHandler<T extends DialogData> = (api: DialogInstanceApi<T>, details: DialogActionDetails) => void;
957 type DialogChangeHandler<T extends DialogData> = (api: DialogInstanceApi<T>, details: DialogChangeDetails<T>) => void;
958 type DialogSubmitHandler<T extends DialogData> = (api: DialogInstanceApi<T>) => void;
959 type DialogCloseHandler = () => void;
960 type DialogCancelHandler<T extends DialogData> = (api: DialogInstanceApi<T>) => void;
961 type DialogTabChangeHandler<T extends DialogData> = (api: DialogInstanceApi<T>, details: DialogTabChangeDetails) => void;
962 type DialogSize = 'normal' | 'medium' | 'large';
963 interface DialogSpec<T extends DialogData> {
964     title: string;
965     size?: DialogSize;
966     body: TabPanelSpec | PanelSpec;
967     buttons: DialogFooterButtonSpec[];
968     initialData?: Partial<T>;
969     onAction?: DialogActionHandler<T>;
970     onChange?: DialogChangeHandler<T>;
971     onSubmit?: DialogSubmitHandler<T>;
972     onClose?: DialogCloseHandler;
973     onCancel?: DialogCancelHandler<T>;
974     onTabChange?: DialogTabChangeHandler<T>;
975 }
976 interface UrlDialogInstanceApi {
977     block: (msg: string) => void;
978     unblock: () => void;
979     close: () => void;
980     sendMessage: (msg: any) => void;
981 }
982 interface UrlDialogActionDetails {
983     name: string;
984     value?: any;
985 }
986 interface UrlDialogMessage {
987     mceAction: string;
988     [key: string]: any;
989 }
990 type UrlDialogActionHandler = (api: UrlDialogInstanceApi, actions: UrlDialogActionDetails) => void;
991 type UrlDialogCloseHandler = () => void;
992 type UrlDialogCancelHandler = (api: UrlDialogInstanceApi) => void;
993 type UrlDialogMessageHandler = (api: UrlDialogInstanceApi, message: UrlDialogMessage) => void;
994 interface UrlDialogFooterButtonSpec extends DialogFooterNormalButtonSpec {
995     type: 'cancel' | 'custom';
996 }
997 interface UrlDialogSpec {
998     title: string;
999     url: string;
1000     height?: number;
1001     width?: number;
1002     buttons?: UrlDialogFooterButtonSpec[];
1003     onAction?: UrlDialogActionHandler;
1004     onClose?: UrlDialogCloseHandler;
1005     onCancel?: UrlDialogCancelHandler;
1006     onMessage?: UrlDialogMessageHandler;
1007 }
1008 type ColumnTypes = number | 'auto';
1009 type SeparatorItemSpec = SeparatorMenuItemSpec;
1010 interface AutocompleterItemSpec {
1011     type?: 'autocompleteitem';
1012     value: string;
1013     text?: string;
1014     icon?: string;
1015     meta?: Record<string, any>;
1016 }
1017 type AutocompleterContents = SeparatorItemSpec | AutocompleterItemSpec | CardMenuItemSpec;
1018 interface AutocompleterSpec {
1019     type?: 'autocompleter';
1020     ch?: string;
1021     trigger?: string;
1022     minChars?: number;
1023     columns?: ColumnTypes;
1024     matches?: (rng: Range, text: string, pattern: string) => boolean;
1025     fetch: (pattern: string, maxResults: number, fetchOptions: Record<string, any>) => Promise<AutocompleterContents[]>;
1026     onAction: (autocompleterApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record<string, any>) => void;
1027     maxResults?: number;
1028     highlightOn?: string[];
1029 }
1030 interface AutocompleterInstanceApi {
1031     hide: () => void;
1032     reload: (fetchOptions: Record<string, any>) => void;
1033 }
1034 type ContextPosition = 'node' | 'selection' | 'line';
1035 type ContextScope = 'node' | 'editor';
1036 interface ContextBarSpec {
1037     predicate?: (elem: Element) => boolean;
1038     position?: ContextPosition;
1039     scope?: ContextScope;
1040 }
1041 interface ContextFormLaunchButtonApi extends BaseToolbarButtonSpec<BaseToolbarButtonInstanceApi> {
1042     type: 'contextformbutton';
1043 }
1044 interface ContextFormLaunchToggleButtonSpec extends BaseToolbarToggleButtonSpec<BaseToolbarToggleButtonInstanceApi> {
1045     type: 'contextformtogglebutton';
1046 }
1047 interface ContextFormButtonInstanceApi extends BaseToolbarButtonInstanceApi {
1048 }
1049 interface ContextFormToggleButtonInstanceApi extends BaseToolbarToggleButtonInstanceApi {
1050 }
1051 interface ContextFormButtonSpec extends BaseToolbarButtonSpec<ContextFormButtonInstanceApi> {
1052     type?: 'contextformbutton';
1053     primary?: boolean;
1054     onAction: (formApi: ContextFormInstanceApi, api: ContextFormButtonInstanceApi) => void;
1055 }
1056 interface ContextFormToggleButtonSpec extends BaseToolbarToggleButtonSpec<ContextFormToggleButtonInstanceApi> {
1057     type?: 'contextformtogglebutton';
1058     onAction: (formApi: ContextFormInstanceApi, buttonApi: ContextFormToggleButtonInstanceApi) => void;
1059     primary?: boolean;
1060 }
1061 interface ContextFormInstanceApi {
1062     hide: () => void;
1063     getValue: () => string;
1064 }
1065 interface ContextFormSpec extends ContextBarSpec {
1066     type?: 'contextform';
1067     initValue?: () => string;
1068     label?: string;
1069     launch?: ContextFormLaunchButtonApi | ContextFormLaunchToggleButtonSpec;
1070     commands: Array<ContextFormToggleButtonSpec | ContextFormButtonSpec>;
1071 }
1072 interface ContextToolbarSpec extends ContextBarSpec {
1073     type?: 'contexttoolbar';
1074     items: string;
1075 }
1076 type PublicDialog_d_AlertBannerSpec = AlertBannerSpec;
1077 type PublicDialog_d_BarSpec = BarSpec;
1078 type PublicDialog_d_BodyComponentSpec = BodyComponentSpec;
1079 type PublicDialog_d_ButtonSpec = ButtonSpec;
1080 type PublicDialog_d_CheckboxSpec = CheckboxSpec;
1081 type PublicDialog_d_CollectionItem = CollectionItem;
1082 type PublicDialog_d_CollectionSpec = CollectionSpec;
1083 type PublicDialog_d_ColorInputSpec = ColorInputSpec;
1084 type PublicDialog_d_ColorPickerSpec = ColorPickerSpec;
1085 type PublicDialog_d_CustomEditorSpec = CustomEditorSpec;
1086 type PublicDialog_d_CustomEditorInit = CustomEditorInit;
1087 type PublicDialog_d_CustomEditorInitFn = CustomEditorInitFn;
1088 type PublicDialog_d_DialogData = DialogData;
1089 type PublicDialog_d_DialogSize = DialogSize;
1090 type PublicDialog_d_DialogSpec<T extends DialogData> = DialogSpec<T>;
1091 type PublicDialog_d_DialogInstanceApi<T extends DialogData> = DialogInstanceApi<T>;
1092 type PublicDialog_d_DialogFooterButtonSpec = DialogFooterButtonSpec;
1093 type PublicDialog_d_DialogActionDetails = DialogActionDetails;
1094 type PublicDialog_d_DialogChangeDetails<T> = DialogChangeDetails<T>;
1095 type PublicDialog_d_DialogTabChangeDetails = DialogTabChangeDetails;
1096 type PublicDialog_d_DropZoneSpec = DropZoneSpec;
1097 type PublicDialog_d_GridSpec = GridSpec;
1098 type PublicDialog_d_HtmlPanelSpec = HtmlPanelSpec;
1099 type PublicDialog_d_IframeSpec = IframeSpec;
1100 type PublicDialog_d_ImagePreviewSpec = ImagePreviewSpec;
1101 type PublicDialog_d_InputSpec = InputSpec;
1102 type PublicDialog_d_LabelSpec = LabelSpec;
1103 type PublicDialog_d_ListBoxSpec = ListBoxSpec;
1104 type PublicDialog_d_ListBoxItemSpec = ListBoxItemSpec;
1105 type PublicDialog_d_ListBoxNestedItemSpec = ListBoxNestedItemSpec;
1106 type PublicDialog_d_ListBoxSingleItemSpec = ListBoxSingleItemSpec;
1107 type PublicDialog_d_PanelSpec = PanelSpec;
1108 type PublicDialog_d_SelectBoxSpec = SelectBoxSpec;
1109 type PublicDialog_d_SelectBoxItemSpec = SelectBoxItemSpec;
1110 type PublicDialog_d_SizeInputSpec = SizeInputSpec;
1111 type PublicDialog_d_SliderSpec = SliderSpec;
1112 type PublicDialog_d_TableSpec = TableSpec;
1113 type PublicDialog_d_TabSpec = TabSpec;
1114 type PublicDialog_d_TabPanelSpec = TabPanelSpec;
1115 type PublicDialog_d_TextAreaSpec = TextAreaSpec;
1116 type PublicDialog_d_TreeSpec = TreeSpec;
1117 type PublicDialog_d_TreeItemSpec = TreeItemSpec;
1118 type PublicDialog_d_UrlInputData = UrlInputData;
1119 type PublicDialog_d_UrlInputSpec = UrlInputSpec;
1120 type PublicDialog_d_UrlDialogSpec = UrlDialogSpec;
1121 type PublicDialog_d_UrlDialogFooterButtonSpec = UrlDialogFooterButtonSpec;
1122 type PublicDialog_d_UrlDialogInstanceApi = UrlDialogInstanceApi;
1123 type PublicDialog_d_UrlDialogActionDetails = UrlDialogActionDetails;
1124 type PublicDialog_d_UrlDialogMessage = UrlDialogMessage;
1125 declare namespace PublicDialog_d {
1126     export { PublicDialog_d_AlertBannerSpec as AlertBannerSpec, PublicDialog_d_BarSpec as BarSpec, PublicDialog_d_BodyComponentSpec as BodyComponentSpec, PublicDialog_d_ButtonSpec as ButtonSpec, PublicDialog_d_CheckboxSpec as CheckboxSpec, PublicDialog_d_CollectionItem as CollectionItem, PublicDialog_d_CollectionSpec as CollectionSpec, PublicDialog_d_ColorInputSpec as ColorInputSpec, PublicDialog_d_ColorPickerSpec as ColorPickerSpec, PublicDialog_d_CustomEditorSpec as CustomEditorSpec, PublicDialog_d_CustomEditorInit as CustomEditorInit, PublicDialog_d_CustomEditorInitFn as CustomEditorInitFn, PublicDialog_d_DialogData as DialogData, PublicDialog_d_DialogSize as DialogSize, PublicDialog_d_DialogSpec as DialogSpec, PublicDialog_d_DialogInstanceApi as DialogInstanceApi, PublicDialog_d_DialogFooterButtonSpec as DialogFooterButtonSpec, PublicDialog_d_DialogActionDetails as DialogActionDetails, PublicDialog_d_DialogChangeDetails as DialogChangeDetails, PublicDialog_d_DialogTabChangeDetails as DialogTabChangeDetails, PublicDialog_d_DropZoneSpec as DropZoneSpec, PublicDialog_d_GridSpec as GridSpec, PublicDialog_d_HtmlPanelSpec as HtmlPanelSpec, PublicDialog_d_IframeSpec as IframeSpec, PublicDialog_d_ImagePreviewSpec as ImagePreviewSpec, PublicDialog_d_InputSpec as InputSpec, PublicDialog_d_LabelSpec as LabelSpec, PublicDialog_d_ListBoxSpec as ListBoxSpec, PublicDialog_d_ListBoxItemSpec as ListBoxItemSpec, PublicDialog_d_ListBoxNestedItemSpec as ListBoxNestedItemSpec, PublicDialog_d_ListBoxSingleItemSpec as ListBoxSingleItemSpec, PublicDialog_d_PanelSpec as PanelSpec, PublicDialog_d_SelectBoxSpec as SelectBoxSpec, PublicDialog_d_SelectBoxItemSpec as SelectBoxItemSpec, PublicDialog_d_SizeInputSpec as SizeInputSpec, PublicDialog_d_SliderSpec as SliderSpec, PublicDialog_d_TableSpec as TableSpec, PublicDialog_d_TabSpec as TabSpec, PublicDialog_d_TabPanelSpec as TabPanelSpec, PublicDialog_d_TextAreaSpec as TextAreaSpec, PublicDialog_d_TreeSpec as TreeSpec, PublicDialog_d_TreeItemSpec as TreeItemSpec, DirectorySpec as TreeDirectorySpec, LeafSpec as TreeLeafSpec, PublicDialog_d_UrlInputData as UrlInputData, PublicDialog_d_UrlInputSpec as UrlInputSpec, PublicDialog_d_UrlDialogSpec as UrlDialogSpec, PublicDialog_d_UrlDialogFooterButtonSpec as UrlDialogFooterButtonSpec, PublicDialog_d_UrlDialogInstanceApi as UrlDialogInstanceApi, PublicDialog_d_UrlDialogActionDetails as UrlDialogActionDetails, PublicDialog_d_UrlDialogMessage as UrlDialogMessage, };
1127 }
1128 type PublicInlineContent_d_AutocompleterSpec = AutocompleterSpec;
1129 type PublicInlineContent_d_AutocompleterItemSpec = AutocompleterItemSpec;
1130 type PublicInlineContent_d_AutocompleterContents = AutocompleterContents;
1131 type PublicInlineContent_d_AutocompleterInstanceApi = AutocompleterInstanceApi;
1132 type PublicInlineContent_d_ContextPosition = ContextPosition;
1133 type PublicInlineContent_d_ContextScope = ContextScope;
1134 type PublicInlineContent_d_ContextFormSpec = ContextFormSpec;
1135 type PublicInlineContent_d_ContextFormInstanceApi = ContextFormInstanceApi;
1136 type PublicInlineContent_d_ContextFormButtonSpec = ContextFormButtonSpec;
1137 type PublicInlineContent_d_ContextFormButtonInstanceApi = ContextFormButtonInstanceApi;
1138 type PublicInlineContent_d_ContextFormToggleButtonSpec = ContextFormToggleButtonSpec;
1139 type PublicInlineContent_d_ContextFormToggleButtonInstanceApi = ContextFormToggleButtonInstanceApi;
1140 type PublicInlineContent_d_ContextToolbarSpec = ContextToolbarSpec;
1141 type PublicInlineContent_d_SeparatorItemSpec = SeparatorItemSpec;
1142 declare namespace PublicInlineContent_d {
1143     export { PublicInlineContent_d_AutocompleterSpec as AutocompleterSpec, PublicInlineContent_d_AutocompleterItemSpec as AutocompleterItemSpec, PublicInlineContent_d_AutocompleterContents as AutocompleterContents, PublicInlineContent_d_AutocompleterInstanceApi as AutocompleterInstanceApi, PublicInlineContent_d_ContextPosition as ContextPosition, PublicInlineContent_d_ContextScope as ContextScope, PublicInlineContent_d_ContextFormSpec as ContextFormSpec, PublicInlineContent_d_ContextFormInstanceApi as ContextFormInstanceApi, PublicInlineContent_d_ContextFormButtonSpec as ContextFormButtonSpec, PublicInlineContent_d_ContextFormButtonInstanceApi as ContextFormButtonInstanceApi, PublicInlineContent_d_ContextFormToggleButtonSpec as ContextFormToggleButtonSpec, PublicInlineContent_d_ContextFormToggleButtonInstanceApi as ContextFormToggleButtonInstanceApi, PublicInlineContent_d_ContextToolbarSpec as ContextToolbarSpec, PublicInlineContent_d_SeparatorItemSpec as SeparatorItemSpec, };
1144 }
1145 type PublicMenu_d_MenuItemSpec = MenuItemSpec;
1146 type PublicMenu_d_MenuItemInstanceApi = MenuItemInstanceApi;
1147 type PublicMenu_d_NestedMenuItemContents = NestedMenuItemContents;
1148 type PublicMenu_d_NestedMenuItemSpec = NestedMenuItemSpec;
1149 type PublicMenu_d_NestedMenuItemInstanceApi = NestedMenuItemInstanceApi;
1150 type PublicMenu_d_FancyMenuItemSpec = FancyMenuItemSpec;
1151 type PublicMenu_d_ColorSwatchMenuItemSpec = ColorSwatchMenuItemSpec;
1152 type PublicMenu_d_InsertTableMenuItemSpec = InsertTableMenuItemSpec;
1153 type PublicMenu_d_ToggleMenuItemSpec = ToggleMenuItemSpec;
1154 type PublicMenu_d_ToggleMenuItemInstanceApi = ToggleMenuItemInstanceApi;
1155 type PublicMenu_d_ChoiceMenuItemSpec = ChoiceMenuItemSpec;
1156 type PublicMenu_d_ChoiceMenuItemInstanceApi = ChoiceMenuItemInstanceApi;
1157 type PublicMenu_d_SeparatorMenuItemSpec = SeparatorMenuItemSpec;
1158 type PublicMenu_d_ContextMenuApi = ContextMenuApi;
1159 type PublicMenu_d_ContextMenuContents = ContextMenuContents;
1160 type PublicMenu_d_ContextMenuItem = ContextMenuItem;
1161 type PublicMenu_d_ContextSubMenu = ContextSubMenu;
1162 type PublicMenu_d_CardMenuItemSpec = CardMenuItemSpec;
1163 type PublicMenu_d_CardMenuItemInstanceApi = CardMenuItemInstanceApi;
1164 type PublicMenu_d_CardItemSpec = CardItemSpec;
1165 type PublicMenu_d_CardContainerSpec = CardContainerSpec;
1166 type PublicMenu_d_CardImageSpec = CardImageSpec;
1167 type PublicMenu_d_CardTextSpec = CardTextSpec;
1168 declare namespace PublicMenu_d {
1169     export { PublicMenu_d_MenuItemSpec as MenuItemSpec, PublicMenu_d_MenuItemInstanceApi as MenuItemInstanceApi, PublicMenu_d_NestedMenuItemContents as NestedMenuItemContents, PublicMenu_d_NestedMenuItemSpec as NestedMenuItemSpec, PublicMenu_d_NestedMenuItemInstanceApi as NestedMenuItemInstanceApi, PublicMenu_d_FancyMenuItemSpec as FancyMenuItemSpec, PublicMenu_d_ColorSwatchMenuItemSpec as ColorSwatchMenuItemSpec, PublicMenu_d_InsertTableMenuItemSpec as InsertTableMenuItemSpec, PublicMenu_d_ToggleMenuItemSpec as ToggleMenuItemSpec, PublicMenu_d_ToggleMenuItemInstanceApi as ToggleMenuItemInstanceApi, PublicMenu_d_ChoiceMenuItemSpec as ChoiceMenuItemSpec, PublicMenu_d_ChoiceMenuItemInstanceApi as ChoiceMenuItemInstanceApi, PublicMenu_d_SeparatorMenuItemSpec as SeparatorMenuItemSpec, PublicMenu_d_ContextMenuApi as ContextMenuApi, PublicMenu_d_ContextMenuContents as ContextMenuContents, PublicMenu_d_ContextMenuItem as ContextMenuItem, PublicMenu_d_ContextSubMenu as ContextSubMenu, PublicMenu_d_CardMenuItemSpec as CardMenuItemSpec, PublicMenu_d_CardMenuItemInstanceApi as CardMenuItemInstanceApi, PublicMenu_d_CardItemSpec as CardItemSpec, PublicMenu_d_CardContainerSpec as CardContainerSpec, PublicMenu_d_CardImageSpec as CardImageSpec, PublicMenu_d_CardTextSpec as CardTextSpec, };
1170 }
1171 interface SidebarInstanceApi {
1172     element: () => HTMLElement;
1173 }
1174 interface SidebarSpec {
1175     icon?: string;
1176     tooltip?: string;
1177     onShow?: (api: SidebarInstanceApi) => void;
1178     onSetup?: (api: SidebarInstanceApi) => (api: SidebarInstanceApi) => void;
1179     onHide?: (api: SidebarInstanceApi) => void;
1180 }
1181 type PublicSidebar_d_SidebarSpec = SidebarSpec;
1182 type PublicSidebar_d_SidebarInstanceApi = SidebarInstanceApi;
1183 declare namespace PublicSidebar_d {
1184     export { PublicSidebar_d_SidebarSpec as SidebarSpec, PublicSidebar_d_SidebarInstanceApi as SidebarInstanceApi, };
1185 }
1186 type PublicToolbar_d_ToolbarButtonSpec = ToolbarButtonSpec;
1187 type PublicToolbar_d_ToolbarButtonInstanceApi = ToolbarButtonInstanceApi;
1188 type PublicToolbar_d_ToolbarSplitButtonSpec = ToolbarSplitButtonSpec;
1189 type PublicToolbar_d_ToolbarSplitButtonInstanceApi = ToolbarSplitButtonInstanceApi;
1190 type PublicToolbar_d_ToolbarMenuButtonSpec = ToolbarMenuButtonSpec;
1191 type PublicToolbar_d_ToolbarMenuButtonInstanceApi = ToolbarMenuButtonInstanceApi;
1192 type PublicToolbar_d_ToolbarToggleButtonSpec = ToolbarToggleButtonSpec;
1193 type PublicToolbar_d_ToolbarToggleButtonInstanceApi = ToolbarToggleButtonInstanceApi;
1194 type PublicToolbar_d_GroupToolbarButtonSpec = GroupToolbarButtonSpec;
1195 type PublicToolbar_d_GroupToolbarButtonInstanceApi = GroupToolbarButtonInstanceApi;
1196 declare namespace PublicToolbar_d {
1197     export { PublicToolbar_d_ToolbarButtonSpec as ToolbarButtonSpec, PublicToolbar_d_ToolbarButtonInstanceApi as ToolbarButtonInstanceApi, PublicToolbar_d_ToolbarSplitButtonSpec as ToolbarSplitButtonSpec, PublicToolbar_d_ToolbarSplitButtonInstanceApi as ToolbarSplitButtonInstanceApi, PublicToolbar_d_ToolbarMenuButtonSpec as ToolbarMenuButtonSpec, PublicToolbar_d_ToolbarMenuButtonInstanceApi as ToolbarMenuButtonInstanceApi, PublicToolbar_d_ToolbarToggleButtonSpec as ToolbarToggleButtonSpec, PublicToolbar_d_ToolbarToggleButtonInstanceApi as ToolbarToggleButtonInstanceApi, PublicToolbar_d_GroupToolbarButtonSpec as GroupToolbarButtonSpec, PublicToolbar_d_GroupToolbarButtonInstanceApi as GroupToolbarButtonInstanceApi, };
1198 }
1199 interface ViewButtonApi {
1200     setIcon: (newIcon: string) => void;
1201 }
1202 interface ViewToggleButtonApi extends ViewButtonApi {
1203     isActive: () => boolean;
1204     setActive: (state: boolean) => void;
1205 }
1206 interface BaseButtonSpec<Api extends ViewButtonApi> {
1207     text?: string;
1208     icon?: string;
1209     tooltip?: string;
1210     buttonType?: 'primary' | 'secondary';
1211     borderless?: boolean;
1212     onAction: (api: Api) => void;
1213 }
1214 interface ViewNormalButtonSpec extends BaseButtonSpec<ViewButtonApi> {
1215     text: string;
1216     type: 'button';
1217 }
1218 interface ViewToggleButtonSpec extends BaseButtonSpec<ViewToggleButtonApi> {
1219     type: 'togglebutton';
1220     active?: boolean;
1221     onAction: (api: ViewToggleButtonApi) => void;
1222 }
1223 interface ViewButtonsGroupSpec {
1224     type: 'group';
1225     buttons: Array<ViewNormalButtonSpec | ViewToggleButtonSpec>;
1226 }
1227 type ViewButtonSpec = ViewNormalButtonSpec | ViewToggleButtonSpec | ViewButtonsGroupSpec;
1228 interface ViewInstanceApi {
1229     getContainer: () => HTMLElement;
1230 }
1231 interface ViewSpec {
1232     buttons?: ViewButtonSpec[];
1233     onShow: (api: ViewInstanceApi) => void;
1234     onHide: (api: ViewInstanceApi) => void;
1235 }
1236 type PublicView_d_ViewSpec = ViewSpec;
1237 type PublicView_d_ViewInstanceApi = ViewInstanceApi;
1238 declare namespace PublicView_d {
1239     export { PublicView_d_ViewSpec as ViewSpec, PublicView_d_ViewInstanceApi as ViewInstanceApi, };
1240 }
1241 interface Registry$1 {
1242     addButton: (name: string, spec: ToolbarButtonSpec) => void;
1243     addGroupToolbarButton: (name: string, spec: GroupToolbarButtonSpec) => void;
1244     addToggleButton: (name: string, spec: ToolbarToggleButtonSpec) => void;
1245     addMenuButton: (name: string, spec: ToolbarMenuButtonSpec) => void;
1246     addSplitButton: (name: string, spec: ToolbarSplitButtonSpec) => void;
1247     addMenuItem: (name: string, spec: MenuItemSpec) => void;
1248     addNestedMenuItem: (name: string, spec: NestedMenuItemSpec) => void;
1249     addToggleMenuItem: (name: string, spec: ToggleMenuItemSpec) => void;
1250     addContextMenu: (name: string, spec: ContextMenuApi) => void;
1251     addContextToolbar: (name: string, spec: ContextToolbarSpec) => void;
1252     addContextForm: (name: string, spec: ContextFormSpec) => void;
1253     addIcon: (name: string, svgData: string) => void;
1254     addAutocompleter: (name: string, spec: AutocompleterSpec) => void;
1255     addSidebar: (name: string, spec: SidebarSpec) => void;
1256     addView: (name: string, spec: ViewSpec) => void;
1257     getAll: () => {
1258         buttons: Record<string, ToolbarButtonSpec | GroupToolbarButtonSpec | ToolbarMenuButtonSpec | ToolbarSplitButtonSpec | ToolbarToggleButtonSpec>;
1259         menuItems: Record<string, MenuItemSpec | NestedMenuItemSpec | ToggleMenuItemSpec>;
1260         popups: Record<string, AutocompleterSpec>;
1261         contextMenus: Record<string, ContextMenuApi>;
1262         contextToolbars: Record<string, ContextToolbarSpec | ContextFormSpec>;
1263         icons: Record<string, string>;
1264         sidebars: Record<string, SidebarSpec>;
1265         views: Record<string, ViewSpec>;
1266     };
1267 }
1268 interface AutocompleteLookupData {
1269     readonly matchText: string;
1270     readonly items: AutocompleterContents[];
1271     readonly columns: ColumnTypes;
1272     readonly onAction: (autoApi: AutocompleterInstanceApi, rng: Range, value: string, meta: Record<string, any>) => void;
1273     readonly highlightOn: string[];
1274 }
1275 interface AutocompleterEventArgs {
1276     readonly lookupData: AutocompleteLookupData[];
1277 }
1278 interface RangeLikeObject {
1279     startContainer: Node;
1280     startOffset: number;
1281     endContainer: Node;
1282     endOffset: number;
1283 }
1284 type ApplyFormat = BlockFormat | InlineFormat | SelectorFormat;
1285 type RemoveFormat = RemoveBlockFormat | RemoveInlineFormat | RemoveSelectorFormat;
1286 type Format = ApplyFormat | RemoveFormat;
1287 type Formats = Record<string, Format | Format[]>;
1288 type FormatAttrOrStyleValue = string | ((vars?: FormatVars) => string | null);
1289 type FormatVars = Record<string, string | null>;
1290 interface BaseFormat<T> {
1291     ceFalseOverride?: boolean;
1292     classes?: string | string[];
1293     collapsed?: boolean;
1294     exact?: boolean;
1295     expand?: boolean;
1296     links?: boolean;
1297     mixed?: boolean;
1298     block_expand?: boolean;
1299     onmatch?: (node: Element, fmt: T, itemName: string) => boolean;
1300     remove?: 'none' | 'empty' | 'all';
1301     remove_similar?: boolean;
1302     split?: boolean;
1303     deep?: boolean;
1304     preserve_attributes?: string[];
1305 }
1306 interface Block {
1307     block: string;
1308     list_block?: string;
1309     wrapper?: boolean;
1310 }
1311 interface Inline {
1312     inline: string;
1313 }
1314 interface Selector {
1315     selector: string;
1316     inherit?: boolean;
1317 }
1318 interface CommonFormat<T> extends BaseFormat<T> {
1319     attributes?: Record<string, FormatAttrOrStyleValue>;
1320     styles?: Record<string, FormatAttrOrStyleValue>;
1321     toggle?: boolean;
1322     preview?: string | false;
1323     onformat?: (elm: Element, fmt: T, vars?: FormatVars, node?: Node | RangeLikeObject | null) => void;
1324     clear_child_styles?: boolean;
1325     merge_siblings?: boolean;
1326     merge_with_parents?: boolean;
1327 }
1328 interface BlockFormat extends Block, CommonFormat<BlockFormat> {
1329 }
1330 interface InlineFormat extends Inline, CommonFormat<InlineFormat> {
1331 }
1332 interface SelectorFormat extends Selector, CommonFormat<SelectorFormat> {
1333 }
1334 interface CommonRemoveFormat<T> extends BaseFormat<T> {
1335     attributes?: string[] | Record<string, FormatAttrOrStyleValue>;
1336     styles?: string[] | Record<string, FormatAttrOrStyleValue>;
1337 }
1338 interface RemoveBlockFormat extends Block, CommonRemoveFormat<RemoveBlockFormat> {
1339 }
1340 interface RemoveInlineFormat extends Inline, CommonRemoveFormat<RemoveInlineFormat> {
1341 }
1342 interface RemoveSelectorFormat extends Selector, CommonRemoveFormat<RemoveSelectorFormat> {
1343 }
1344 interface Filter<C extends Function> {
1345     name: string;
1346     callbacks: C[];
1347 }
1348 interface ParserArgs {
1349     getInner?: boolean | number;
1350     forced_root_block?: boolean | string;
1351     context?: string;
1352     isRootContent?: boolean;
1353     format?: string;
1354     invalid?: boolean;
1355     no_events?: boolean;
1356     [key: string]: any;
1357 }
1358 type ParserFilterCallback = (nodes: AstNode[], name: string, args: ParserArgs) => void;
1359 interface ParserFilter extends Filter<ParserFilterCallback> {
1360 }
1361 interface DomParserSettings {
1362     allow_html_data_urls?: boolean;
1363     allow_svg_data_urls?: boolean;
1364     allow_conditional_comments?: boolean;
1365     allow_html_in_named_anchor?: boolean;
1366     allow_script_urls?: boolean;
1367     allow_unsafe_link_target?: boolean;
1368     blob_cache?: BlobCache;
1369     convert_fonts_to_spans?: boolean;
1370     document?: Document;
1371     fix_list_elements?: boolean;
1372     font_size_legacy_values?: string;
1373     forced_root_block?: boolean | string;
1374     forced_root_block_attrs?: Record<string, string>;
1375     inline_styles?: boolean;
1376     preserve_cdata?: boolean;
1377     remove_trailing_brs?: boolean;
1378     root_name?: string;
1379     sanitize?: boolean;
1380     validate?: boolean;
1381 }
1382 interface DomParser {
1383     schema: Schema;
1384     addAttributeFilter: (name: string, callback: ParserFilterCallback) => void;
1385     getAttributeFilters: () => ParserFilter[];
1386     removeAttributeFilter: (name: string, callback?: ParserFilterCallback) => void;
1387     addNodeFilter: (name: string, callback: ParserFilterCallback) => void;
1388     getNodeFilters: () => ParserFilter[];
1389     removeNodeFilter: (name: string, callback?: ParserFilterCallback) => void;
1390     parse: (html: string, args?: ParserArgs) => AstNode;
1391 }
1392 interface StyleSheetLoaderSettings {
1393     maxLoadTime?: number;
1394     contentCssCors?: boolean;
1395     referrerPolicy?: ReferrerPolicy;
1396 }
1397 interface StyleSheetLoader {
1398     load: (url: string) => Promise<void>;
1399     loadAll: (urls: string[]) => Promise<string[]>;
1400     unload: (url: string) => void;
1401     unloadAll: (urls: string[]) => void;
1402     _setReferrerPolicy: (referrerPolicy: ReferrerPolicy) => void;
1403     _setContentCssCors: (contentCssCors: boolean) => void;
1404 }
1405 type Registry = Registry$1;
1406 interface EditorUiApi {
1407     show: () => void;
1408     hide: () => void;
1409     setEnabled: (state: boolean) => void;
1410     isEnabled: () => boolean;
1411 }
1412 interface EditorUi extends EditorUiApi {
1413     registry: Registry;
1414     styleSheetLoader: StyleSheetLoader;
1415 }
1416 type Ui_d_Registry = Registry;
1417 type Ui_d_EditorUiApi = EditorUiApi;
1418 type Ui_d_EditorUi = EditorUi;
1419 declare namespace Ui_d {
1420     export { Ui_d_Registry as Registry, PublicDialog_d as Dialog, PublicInlineContent_d as InlineContent, PublicMenu_d as Menu, PublicView_d as View, PublicSidebar_d as Sidebar, PublicToolbar_d as Toolbar, Ui_d_EditorUiApi as EditorUiApi, Ui_d_EditorUi as EditorUi, };
1421 }
1422 interface WindowParams {
1423     readonly inline?: 'cursor' | 'toolbar';
1424     readonly ariaAttrs?: boolean;
1425 }
1426 type InstanceApi<T extends DialogData> = UrlDialogInstanceApi | DialogInstanceApi<T>;
1427 interface WindowManagerImpl {
1428     open: <T extends DialogData>(config: DialogSpec<T>, params: WindowParams | undefined, closeWindow: (dialog: DialogInstanceApi<T>) => void) => DialogInstanceApi<T>;
1429     openUrl: (config: UrlDialogSpec, closeWindow: (dialog: UrlDialogInstanceApi) => void) => UrlDialogInstanceApi;
1430     alert: (message: string, callback: () => void) => void;
1431     confirm: (message: string, callback: (state: boolean) => void) => void;
1432     close: (dialog: InstanceApi<any>) => void;
1433 }
1434 interface WindowManager {
1435     open: <T extends DialogData>(config: DialogSpec<T>, params?: WindowParams) => DialogInstanceApi<T>;
1436     openUrl: (config: UrlDialogSpec) => UrlDialogInstanceApi;
1437     alert: (message: string, callback?: () => void, scope?: any) => void;
1438     confirm: (message: string, callback?: (state: boolean) => void, scope?: any) => void;
1439     close: () => void;
1440 }
1441 interface ExecCommandEvent {
1442     command: string;
1443     ui: boolean;
1444     value?: any;
1445 }
1446 interface BeforeGetContentEvent extends GetContentArgs {
1447     selection?: boolean;
1448 }
1449 interface GetContentEvent extends BeforeGetContentEvent {
1450     content: string;
1451 }
1452 interface BeforeSetContentEvent extends SetContentArgs {
1453     content: string;
1454     selection?: boolean;
1455 }
1456 interface SetContentEvent extends BeforeSetContentEvent {
1457     content: string;
1458 }
1459 interface SaveContentEvent extends GetContentEvent {
1460     save: boolean;
1461 }
1462 interface NewBlockEvent {
1463     newBlock: Element;
1464 }
1465 interface NodeChangeEvent {
1466     element: Element;
1467     parents: Node[];
1468     selectionChange?: boolean;
1469     initial?: boolean;
1470 }
1471 interface FormatEvent {
1472     format: string;
1473     vars?: FormatVars;
1474     node?: Node | RangeLikeObject | null;
1475 }
1476 interface ObjectResizeEvent {
1477     target: HTMLElement;
1478     width: number;
1479     height: number;
1480     origin: string;
1481 }
1482 interface ObjectSelectedEvent {
1483     target: Node;
1484     targetClone?: Node;
1485 }
1486 interface ScrollIntoViewEvent {
1487     elm: HTMLElement;
1488     alignToTop: boolean | undefined;
1489 }
1490 interface SetSelectionRangeEvent {
1491     range: Range;
1492     forward: boolean | undefined;
1493 }
1494 interface ShowCaretEvent {
1495     target: Node;
1496     direction: number;
1497     before: boolean;
1498 }
1499 interface SwitchModeEvent {
1500     mode: string;
1501 }
1502 interface ChangeEvent {
1503     level: UndoLevel;
1504     lastLevel: UndoLevel | undefined;
1505 }
1506 interface AddUndoEvent extends ChangeEvent {
1507     originalEvent: Event | undefined;
1508 }
1509 interface UndoRedoEvent {
1510     level: UndoLevel;
1511 }
1512 interface WindowEvent<T extends DialogData> {
1513     dialog: InstanceApi<T>;
1514 }
1515 interface ProgressStateEvent {
1516     state: boolean;
1517     time?: number;
1518 }
1519 interface AfterProgressStateEvent {
1520     state: boolean;
1521 }
1522 interface PlaceholderToggleEvent {
1523     state: boolean;
1524 }
1525 interface LoadErrorEvent {
1526     message: string;
1527 }
1528 interface PreProcessEvent extends ParserArgs {
1529     node: Element;
1530 }
1531 interface PostProcessEvent extends ParserArgs {
1532     content: string;
1533 }
1534 interface PastePlainTextToggleEvent {
1535     state: boolean;
1536 }
1537 interface PastePreProcessEvent {
1538     content: string;
1539     readonly internal: boolean;
1540 }
1541 interface PastePostProcessEvent {
1542     node: HTMLElement;
1543     readonly internal: boolean;
1544 }
1545 interface EditableRootStateChangeEvent {
1546     state: boolean;
1547 }
1548 interface NewTableRowEvent {
1549     node: HTMLTableRowElement;
1550 }
1551 interface NewTableCellEvent {
1552     node: HTMLTableCellElement;
1553 }
1554 interface TableEventData {
1555     readonly structure: boolean;
1556     readonly style: boolean;
1557 }
1558 interface TableModifiedEvent extends TableEventData {
1559     readonly table: HTMLTableElement;
1560 }
1561 interface BeforeOpenNotificationEvent {
1562     notification: NotificationSpec;
1563 }
1564 interface OpenNotificationEvent {
1565     notification: NotificationApi;
1566 }
1567 interface EditorEventMap extends Omit<NativeEventMap, 'blur' | 'focus'> {
1568     'activate': {
1569         relatedTarget: Editor | null;
1570     };
1571     'deactivate': {
1572         relatedTarget: Editor;
1573     };
1574     'focus': {
1575         blurredEditor: Editor | null;
1576     };
1577     'blur': {
1578         focusedEditor: Editor | null;
1579     };
1580     'resize': UIEvent;
1581     'scroll': UIEvent;
1582     'detach': {};
1583     'remove': {};
1584     'init': {};
1585     'ScrollIntoView': ScrollIntoViewEvent;
1586     'AfterScrollIntoView': ScrollIntoViewEvent;
1587     'ObjectResized': ObjectResizeEvent;
1588     'ObjectResizeStart': ObjectResizeEvent;
1589     'SwitchMode': SwitchModeEvent;
1590     'ScrollWindow': Event;
1591     'ResizeWindow': UIEvent;
1592     'SkinLoaded': {};
1593     'SkinLoadError': LoadErrorEvent;
1594     'PluginLoadError': LoadErrorEvent;
1595     'ModelLoadError': LoadErrorEvent;
1596     'IconsLoadError': LoadErrorEvent;
1597     'ThemeLoadError': LoadErrorEvent;
1598     'LanguageLoadError': LoadErrorEvent;
1599     'BeforeExecCommand': ExecCommandEvent;
1600     'ExecCommand': ExecCommandEvent;
1601     'NodeChange': NodeChangeEvent;
1602     'FormatApply': FormatEvent;
1603     'FormatRemove': FormatEvent;
1604     'ShowCaret': ShowCaretEvent;
1605     'SelectionChange': {};
1606     'ObjectSelected': ObjectSelectedEvent;
1607     'BeforeObjectSelected': ObjectSelectedEvent;
1608     'GetSelectionRange': {
1609         range: Range;
1610     };
1611     'SetSelectionRange': SetSelectionRangeEvent;
1612     'AfterSetSelectionRange': SetSelectionRangeEvent;
1613     'BeforeGetContent': BeforeGetContentEvent;
1614     'GetContent': GetContentEvent;
1615     'BeforeSetContent': BeforeSetContentEvent;
1616     'SetContent': SetContentEvent;
1617     'SaveContent': SaveContentEvent;
1618     'RawSaveContent': SaveContentEvent;
1619     'LoadContent': {
1620         load: boolean;
1621         element: HTMLElement;
1622     };
1623     'PreviewFormats': {};
1624     'AfterPreviewFormats': {};
1625     'ScriptsLoaded': {};
1626     'PreInit': {};
1627     'PostRender': {};
1628     'NewBlock': NewBlockEvent;
1629     'ClearUndos': {};
1630     'TypingUndo': {};
1631     'Redo': UndoRedoEvent;
1632     'Undo': UndoRedoEvent;
1633     'BeforeAddUndo': AddUndoEvent;
1634     'AddUndo': AddUndoEvent;
1635     'change': ChangeEvent;
1636     'CloseWindow': WindowEvent<any>;
1637     'OpenWindow': WindowEvent<any>;
1638     'ProgressState': ProgressStateEvent;
1639     'AfterProgressState': AfterProgressStateEvent;
1640     'PlaceholderToggle': PlaceholderToggleEvent;
1641     'tap': TouchEvent;
1642     'longpress': TouchEvent;
1643     'longpresscancel': {};
1644     'PreProcess': PreProcessEvent;
1645     'PostProcess': PostProcessEvent;
1646     'AutocompleterStart': AutocompleterEventArgs;
1647     'AutocompleterUpdate': AutocompleterEventArgs;
1648     'AutocompleterEnd': {};
1649     'PastePlainTextToggle': PastePlainTextToggleEvent;
1650     'PastePreProcess': PastePreProcessEvent;
1651     'PastePostProcess': PastePostProcessEvent;
1652     'TableModified': TableModifiedEvent;
1653     'NewRow': NewTableRowEvent;
1654     'NewCell': NewTableCellEvent;
1655     'SetAttrib': SetAttribEvent;
1656     'hide': {};
1657     'show': {};
1658     'dirty': {};
1659     'BeforeOpenNotification': BeforeOpenNotificationEvent;
1660     'OpenNotification': OpenNotificationEvent;
1661 }
1662 interface EditorManagerEventMap {
1663     'AddEditor': {
1664         editor: Editor;
1665     };
1666     'RemoveEditor': {
1667         editor: Editor;
1668     };
1669     'BeforeUnload': {
1670         returnValue: any;
1671     };
1672 }
1673 type EventTypes_d_ExecCommandEvent = ExecCommandEvent;
1674 type EventTypes_d_BeforeGetContentEvent = BeforeGetContentEvent;
1675 type EventTypes_d_GetContentEvent = GetContentEvent;
1676 type EventTypes_d_BeforeSetContentEvent = BeforeSetContentEvent;
1677 type EventTypes_d_SetContentEvent = SetContentEvent;
1678 type EventTypes_d_SaveContentEvent = SaveContentEvent;
1679 type EventTypes_d_NewBlockEvent = NewBlockEvent;
1680 type EventTypes_d_NodeChangeEvent = NodeChangeEvent;
1681 type EventTypes_d_FormatEvent = FormatEvent;
1682 type EventTypes_d_ObjectResizeEvent = ObjectResizeEvent;
1683 type EventTypes_d_ObjectSelectedEvent = ObjectSelectedEvent;
1684 type EventTypes_d_ScrollIntoViewEvent = ScrollIntoViewEvent;
1685 type EventTypes_d_SetSelectionRangeEvent = SetSelectionRangeEvent;
1686 type EventTypes_d_ShowCaretEvent = ShowCaretEvent;
1687 type EventTypes_d_SwitchModeEvent = SwitchModeEvent;
1688 type EventTypes_d_ChangeEvent = ChangeEvent;
1689 type EventTypes_d_AddUndoEvent = AddUndoEvent;
1690 type EventTypes_d_UndoRedoEvent = UndoRedoEvent;
1691 type EventTypes_d_WindowEvent<T extends DialogData> = WindowEvent<T>;
1692 type EventTypes_d_ProgressStateEvent = ProgressStateEvent;
1693 type EventTypes_d_AfterProgressStateEvent = AfterProgressStateEvent;
1694 type EventTypes_d_PlaceholderToggleEvent = PlaceholderToggleEvent;
1695 type EventTypes_d_LoadErrorEvent = LoadErrorEvent;
1696 type EventTypes_d_PreProcessEvent = PreProcessEvent;
1697 type EventTypes_d_PostProcessEvent = PostProcessEvent;
1698 type EventTypes_d_PastePlainTextToggleEvent = PastePlainTextToggleEvent;
1699 type EventTypes_d_PastePreProcessEvent = PastePreProcessEvent;
1700 type EventTypes_d_PastePostProcessEvent = PastePostProcessEvent;
1701 type EventTypes_d_EditableRootStateChangeEvent = EditableRootStateChangeEvent;
1702 type EventTypes_d_NewTableRowEvent = NewTableRowEvent;
1703 type EventTypes_d_NewTableCellEvent = NewTableCellEvent;
1704 type EventTypes_d_TableEventData = TableEventData;
1705 type EventTypes_d_TableModifiedEvent = TableModifiedEvent;
1706 type EventTypes_d_BeforeOpenNotificationEvent = BeforeOpenNotificationEvent;
1707 type EventTypes_d_OpenNotificationEvent = OpenNotificationEvent;
1708 type EventTypes_d_EditorEventMap = EditorEventMap;
1709 type EventTypes_d_EditorManagerEventMap = EditorManagerEventMap;
1710 declare namespace EventTypes_d {
1711     export { EventTypes_d_ExecCommandEvent as ExecCommandEvent, EventTypes_d_BeforeGetContentEvent as BeforeGetContentEvent, EventTypes_d_GetContentEvent as GetContentEvent, EventTypes_d_BeforeSetContentEvent as BeforeSetContentEvent, EventTypes_d_SetContentEvent as SetContentEvent, EventTypes_d_SaveContentEvent as SaveContentEvent, EventTypes_d_NewBlockEvent as NewBlockEvent, EventTypes_d_NodeChangeEvent as NodeChangeEvent, EventTypes_d_FormatEvent as FormatEvent, EventTypes_d_ObjectResizeEvent as ObjectResizeEvent, EventTypes_d_ObjectSelectedEvent as ObjectSelectedEvent, EventTypes_d_ScrollIntoViewEvent as ScrollIntoViewEvent, EventTypes_d_SetSelectionRangeEvent as SetSelectionRangeEvent, EventTypes_d_ShowCaretEvent as ShowCaretEvent, EventTypes_d_SwitchModeEvent as SwitchModeEvent, EventTypes_d_ChangeEvent as ChangeEvent, EventTypes_d_AddUndoEvent as AddUndoEvent, EventTypes_d_UndoRedoEvent as UndoRedoEvent, EventTypes_d_WindowEvent as WindowEvent, EventTypes_d_ProgressStateEvent as ProgressStateEvent, EventTypes_d_AfterProgressStateEvent as AfterProgressStateEvent, EventTypes_d_PlaceholderToggleEvent as PlaceholderToggleEvent, EventTypes_d_LoadErrorEvent as LoadErrorEvent, EventTypes_d_PreProcessEvent as PreProcessEvent, EventTypes_d_PostProcessEvent as PostProcessEvent, EventTypes_d_PastePlainTextToggleEvent as PastePlainTextToggleEvent, EventTypes_d_PastePreProcessEvent as PastePreProcessEvent, EventTypes_d_PastePostProcessEvent as PastePostProcessEvent, EventTypes_d_EditableRootStateChangeEvent as EditableRootStateChangeEvent, EventTypes_d_NewTableRowEvent as NewTableRowEvent, EventTypes_d_NewTableCellEvent as NewTableCellEvent, EventTypes_d_TableEventData as TableEventData, EventTypes_d_TableModifiedEvent as TableModifiedEvent, EventTypes_d_BeforeOpenNotificationEvent as BeforeOpenNotificationEvent, EventTypes_d_OpenNotificationEvent as OpenNotificationEvent, EventTypes_d_EditorEventMap as EditorEventMap, EventTypes_d_EditorManagerEventMap as EditorManagerEventMap, };
1712 }
1713 type Format_d_Formats = Formats;
1714 type Format_d_Format = Format;
1715 type Format_d_ApplyFormat = ApplyFormat;
1716 type Format_d_BlockFormat = BlockFormat;
1717 type Format_d_InlineFormat = InlineFormat;
1718 type Format_d_SelectorFormat = SelectorFormat;
1719 type Format_d_RemoveFormat = RemoveFormat;
1720 type Format_d_RemoveBlockFormat = RemoveBlockFormat;
1721 type Format_d_RemoveInlineFormat = RemoveInlineFormat;
1722 type Format_d_RemoveSelectorFormat = RemoveSelectorFormat;
1723 declare namespace Format_d {
1724     export { Format_d_Formats as Formats, Format_d_Format as Format, Format_d_ApplyFormat as ApplyFormat, Format_d_BlockFormat as BlockFormat, Format_d_InlineFormat as InlineFormat, Format_d_SelectorFormat as SelectorFormat, Format_d_RemoveFormat as RemoveFormat, Format_d_RemoveBlockFormat as RemoveBlockFormat, Format_d_RemoveInlineFormat as RemoveInlineFormat, Format_d_RemoveSelectorFormat as RemoveSelectorFormat, };
1725 }
1726 type StyleFormat = BlockStyleFormat | InlineStyleFormat | SelectorStyleFormat;
1727 type AllowedFormat = Separator | FormatReference | StyleFormat | NestedFormatting;
1728 interface Separator {
1729     title: string;
1730 }
1731 interface FormatReference {
1732     title: string;
1733     format: string;
1734     icon?: string;
1735 }
1736 interface NestedFormatting {
1737     title: string;
1738     items: Array<FormatReference | StyleFormat>;
1739 }
1740 interface CommonStyleFormat {
1741     name?: string;
1742     title: string;
1743     icon?: string;
1744 }
1745 interface BlockStyleFormat extends BlockFormat, CommonStyleFormat {
1746 }
1747 interface InlineStyleFormat extends InlineFormat, CommonStyleFormat {
1748 }
1749 interface SelectorStyleFormat extends SelectorFormat, CommonStyleFormat {
1750 }
1751 type EntityEncoding = 'named' | 'numeric' | 'raw' | 'named,numeric' | 'named+numeric' | 'numeric,named' | 'numeric+named';
1752 interface ContentLanguage {
1753     readonly title: string;
1754     readonly code: string;
1755     readonly customCode?: string;
1756 }
1757 type ThemeInitFunc = (editor: Editor, elm: HTMLElement) => {
1758     editorContainer: HTMLElement;
1759     iframeContainer: HTMLElement;
1760     height?: number;
1761     iframeHeight?: number;
1762     api?: EditorUiApi;
1763 };
1764 type SetupCallback = (editor: Editor) => void;
1765 type FilePickerCallback = (callback: (value: string, meta?: Record<string, any>) => void, value: string, meta: Record<string, any>) => void;
1766 type FilePickerValidationStatus = 'valid' | 'unknown' | 'invalid' | 'none';
1767 type FilePickerValidationCallback = (info: {
1768     type: string;
1769     url: string;
1770 }, callback: (validation: {
1771     status: FilePickerValidationStatus;
1772     message: string;
1773 }) => void) => void;
1774 type PastePreProcessFn = (editor: Editor, args: PastePreProcessEvent) => void;
1775 type PastePostProcessFn = (editor: Editor, args: PastePostProcessEvent) => void;
1776 type URLConverter = (url: string, name: string, elm?: string | Element) => string;
1777 type URLConverterCallback = (url: string, node: Node | string | undefined, on_save: boolean, name: string) => string;
1778 interface ToolbarGroup {
1779     name?: string;
1780     items: string[];
1781 }
1782 type ToolbarMode = 'floating' | 'sliding' | 'scrolling' | 'wrap';
1783 type ToolbarLocation = 'top' | 'bottom' | 'auto';
1784 interface BaseEditorOptions {
1785     a11y_advanced_options?: boolean;
1786     add_form_submit_trigger?: boolean;
1787     add_unload_trigger?: boolean;
1788     allow_conditional_comments?: boolean;
1789     allow_html_data_urls?: boolean;
1790     allow_html_in_named_anchor?: boolean;
1791     allow_script_urls?: boolean;
1792     allow_svg_data_urls?: boolean;
1793     allow_unsafe_link_target?: boolean;
1794     anchor_bottom?: false | string;
1795     anchor_top?: false | string;
1796     auto_focus?: string | true;
1797     automatic_uploads?: boolean;
1798     base_url?: string;
1799     block_formats?: string;
1800     block_unsupported_drop?: boolean;
1801     body_id?: string;
1802     body_class?: string;
1803     br_in_pre?: boolean;
1804     br_newline_selector?: string;
1805     browser_spellcheck?: boolean;
1806     branding?: boolean;
1807     cache_suffix?: string;
1808     color_cols?: number;
1809     color_cols_foreground?: number;
1810     color_cols_background?: number;
1811     color_map?: string[];
1812     color_map_foreground?: string[];
1813     color_map_background?: string[];
1814     color_default_foreground?: string;
1815     color_default_background?: string;
1816     content_css?: boolean | string | string[];
1817     content_css_cors?: boolean;
1818     content_security_policy?: string;
1819     content_style?: string;
1820     content_langs?: ContentLanguage[];
1821     contextmenu?: string | string[] | false;
1822     contextmenu_never_use_native?: boolean;
1823     convert_fonts_to_spans?: boolean;
1824     convert_urls?: boolean;
1825     custom_colors?: boolean;
1826     custom_elements?: string;
1827     custom_ui_selector?: string;
1828     custom_undo_redo_levels?: number;
1829     deprecation_warnings?: boolean;
1830     directionality?: 'ltr' | 'rtl';
1831     doctype?: string;
1832     document_base_url?: string;
1833     draggable_modal?: boolean;
1834     editable_class?: string;
1835     editable_root?: boolean;
1836     element_format?: 'xhtml' | 'html';
1837     elementpath?: boolean;
1838     encoding?: string;
1839     end_container_on_empty_block?: boolean | string;
1840     entities?: string;
1841     entity_encoding?: EntityEncoding;
1842     extended_valid_elements?: string;
1843     event_root?: string;
1844     file_picker_callback?: FilePickerCallback;
1845     file_picker_types?: string;
1846     file_picker_validator_handler?: FilePickerValidationCallback;
1847     fix_list_elements?: boolean;
1848     fixed_toolbar_container?: string;
1849     fixed_toolbar_container_target?: HTMLElement;
1850     font_css?: string | string[];
1851     font_family_formats?: string;
1852     font_size_classes?: string;
1853     font_size_legacy_values?: string;
1854     font_size_style_values?: string;
1855     font_size_formats?: string;
1856     font_size_input_default_unit?: string;
1857     forced_root_block?: string;
1858     forced_root_block_attrs?: Record<string, string>;
1859     formats?: Formats;
1860     format_noneditable_selector?: string;
1861     height?: number | string;
1862     hidden_input?: boolean;
1863     highlight_on_focus?: boolean;
1864     icons?: string;
1865     icons_url?: string;
1866     id?: string;
1867     iframe_aria_text?: string;
1868     iframe_attrs?: Record<string, string>;
1869     images_file_types?: string;
1870     images_replace_blob_uris?: boolean;
1871     images_reuse_filename?: boolean;
1872     images_upload_base_path?: string;
1873     images_upload_credentials?: boolean;
1874     images_upload_handler?: UploadHandler;
1875     images_upload_url?: string;
1876     indent?: boolean;
1877     indent_after?: string;
1878     indent_before?: string;
1879     indent_use_margin?: boolean;
1880     indentation?: string;
1881     init_instance_callback?: SetupCallback;
1882     inline?: boolean;
1883     inline_boundaries?: boolean;
1884     inline_boundaries_selector?: string;
1885     inline_styles?: boolean;
1886     invalid_elements?: string;
1887     invalid_styles?: string | Record<string, string>;
1888     keep_styles?: boolean;
1889     language?: string;
1890     language_load?: boolean;
1891     language_url?: string;
1892     line_height_formats?: string;
1893     max_height?: number;
1894     max_width?: number;
1895     menu?: Record<string, {
1896         title: string;
1897         items: string;
1898     }>;
1899     menubar?: boolean | string;
1900     min_height?: number;
1901     min_width?: number;
1902     model?: string;
1903     model_url?: string;
1904     newdocument_content?: string;
1905     newline_behavior?: 'block' | 'linebreak' | 'invert' | 'default';
1906     no_newline_selector?: string;
1907     noneditable_class?: string;
1908     noneditable_regexp?: RegExp | RegExp[];
1909     nowrap?: boolean;
1910     object_resizing?: boolean | string;
1911     paste_as_text?: boolean;
1912     paste_block_drop?: boolean;
1913     paste_data_images?: boolean;
1914     paste_merge_formats?: boolean;
1915     paste_postprocess?: PastePostProcessFn;
1916     paste_preprocess?: PastePreProcessFn;
1917     paste_remove_styles_if_webkit?: boolean;
1918     paste_tab_spaces?: number;
1919     paste_webkit_styles?: string;
1920     placeholder?: string;
1921     preserve_cdata?: boolean;
1922     preview_styles?: false | string;
1923     promotion?: boolean;
1924     protect?: RegExp[];
1925     readonly?: boolean;
1926     referrer_policy?: ReferrerPolicy;
1927     relative_urls?: boolean;
1928     remove_script_host?: boolean;
1929     remove_trailing_brs?: boolean;
1930     removed_menuitems?: string;
1931     resize?: boolean | 'both';
1932     resize_img_proportional?: boolean;
1933     root_name?: string;
1934     schema?: SchemaType;
1935     selector?: string;
1936     setup?: SetupCallback;
1937     sidebar_show?: string;
1938     skin?: boolean | string;
1939     skin_url?: string;
1940     smart_paste?: boolean;
1941     statusbar?: boolean;
1942     style_formats?: AllowedFormat[];
1943     style_formats_autohide?: boolean;
1944     style_formats_merge?: boolean;
1945     submit_patch?: boolean;
1946     suffix?: string;
1947     table_tab_navigation?: boolean;
1948     target?: HTMLElement;
1949     text_patterns?: RawPattern[] | false;
1950     text_patterns_lookup?: RawDynamicPatternsLookup;
1951     theme?: string | ThemeInitFunc | false;
1952     theme_url?: string;
1953     toolbar?: boolean | string | string[] | Array<ToolbarGroup>;
1954     toolbar1?: string;
1955     toolbar2?: string;
1956     toolbar3?: string;
1957     toolbar4?: string;
1958     toolbar5?: string;
1959     toolbar6?: string;
1960     toolbar7?: string;
1961     toolbar8?: string;
1962     toolbar9?: string;
1963     toolbar_groups?: Record<string, GroupToolbarButtonSpec>;
1964     toolbar_location?: ToolbarLocation;
1965     toolbar_mode?: ToolbarMode;
1966     toolbar_sticky?: boolean;
1967     toolbar_sticky_offset?: number;
1968     typeahead_urls?: boolean;
1969     ui_mode?: 'combined' | 'split';
1970     url_converter?: URLConverter;
1971     url_converter_scope?: any;
1972     urlconverter_callback?: URLConverterCallback;
1973     valid_children?: string;
1974     valid_classes?: string | Record<string, string>;
1975     valid_elements?: string;
1976     valid_styles?: string | Record<string, string>;
1977     verify_html?: boolean;
1978     visual?: boolean;
1979     visual_anchor_class?: string;
1980     visual_table_class?: string;
1981     width?: number | string;
1982     xss_sanitization?: boolean;
1983     disable_nodechange?: boolean;
1984     forced_plugins?: string | string[];
1985     plugin_base_urls?: Record<string, string>;
1986     service_message?: string;
1987     [key: string]: any;
1988 }
1989 interface RawEditorOptions extends BaseEditorOptions {
1990     external_plugins?: Record<string, string>;
1991     mobile?: RawEditorOptions;
1992     plugins?: string | string[];
1993 }
1994 interface NormalizedEditorOptions extends BaseEditorOptions {
1995     external_plugins: Record<string, string>;
1996     forced_plugins: string[];
1997     plugins: string[];
1998 }
1999 interface EditorOptions extends NormalizedEditorOptions {
2000     a11y_advanced_options: boolean;
2001     allow_unsafe_link_target: boolean;
2002     anchor_bottom: string;
2003     anchor_top: string;
2004     automatic_uploads: boolean;
2005     block_formats: string;
2006     body_class: string;
2007     body_id: string;
2008     br_newline_selector: string;
2009     color_map: string[];
2010     color_cols: number;
2011     color_cols_foreground: number;
2012     color_cols_background: number;
2013     color_default_background: string;
2014     color_default_foreground: string;
2015     content_css: string[];
2016     contextmenu: string[];
2017     custom_colors: boolean;
2018     document_base_url: string;
2019     init_content_sync: boolean;
2020     draggable_modal: boolean;
2021     editable_class: string;
2022     editable_root: boolean;
2023     font_css: string[];
2024     font_family_formats: string;
2025     font_size_classes: string;
2026     font_size_formats: string;
2027     font_size_input_default_unit: string;
2028     font_size_legacy_values: string;
2029     font_size_style_values: string;
2030     forced_root_block: string;
2031     forced_root_block_attrs: Record<string, string>;
2032     format_noneditable_selector: string;
2033     height: number | string;
2034     highlight_on_focus: boolean;
2035     iframe_attrs: Record<string, string>;
2036     images_file_types: string;
2037     images_upload_base_path: string;
2038     images_upload_credentials: boolean;
2039     images_upload_url: string;
2040     indent_use_margin: boolean;
2041     indentation: string;
2042     inline: boolean;
2043     inline_boundaries_selector: string;
2044     language: string;
2045     language_load: boolean;
2046     language_url: string;
2047     line_height_formats: string;
2048     menu: Record<string, {
2049         title: string;
2050         items: string;
2051     }>;
2052     menubar: boolean | string;
2053     model: string;
2054     newdocument_content: string;
2055     no_newline_selector: string;
2056     noneditable_class: string;
2057     noneditable_regexp: RegExp[];
2058     object_resizing: string;
2059     paste_as_text: boolean;
2060     preview_styles: string;
2061     promotion: boolean;
2062     readonly: boolean;
2063     removed_menuitems: string;
2064     toolbar: boolean | string | string[] | Array<ToolbarGroup>;
2065     toolbar_groups: Record<string, GroupToolbarButtonSpec>;
2066     toolbar_location: ToolbarLocation;
2067     toolbar_mode: ToolbarMode;
2068     toolbar_persist: boolean;
2069     toolbar_sticky: boolean;
2070     toolbar_sticky_offset: number;
2071     text_patterns: Pattern[];
2072     text_patterns_lookup: DynamicPatternsLookup;
2073     visual: boolean;
2074     visual_anchor_class: string;
2075     visual_table_class: string;
2076     width: number | string;
2077     xss_sanitization: boolean;
2078 }
2079 type StyleMap = Record<string, string | number>;
2080 interface StylesSettings {
2081     allow_script_urls?: boolean;
2082     allow_svg_data_urls?: boolean;
2083     url_converter?: URLConverter;
2084     url_converter_scope?: any;
2085 }
2086 interface Styles {
2087     parse: (css: string | undefined) => Record<string, string>;
2088     serialize: (styles: StyleMap, elementName?: string) => string;
2089 }
2090 type EventUtilsCallback<T> = (event: EventUtilsEvent<T>) => void | boolean;
2091 type EventUtilsEvent<T> = NormalizedEvent<T> & {
2092     metaKey: boolean;
2093 };
2094 interface Callback$1<T> {
2095     func: EventUtilsCallback<T>;
2096     scope: any;
2097 }
2098 interface CallbackList<T> extends Array<Callback$1<T>> {
2099     fakeName: string | false;
2100     capture: boolean;
2101     nativeHandler: EventListener;
2102 }
2103 interface EventUtilsConstructor {
2104     readonly prototype: EventUtils;
2105     new (): EventUtils;
2106     Event: EventUtils;
2107 }
2108 declare class EventUtils {
2109     static Event: EventUtils;
2110     domLoaded: boolean;
2111     events: Record<number, Record<string, CallbackList<any>>>;
2112     private readonly expando;
2113     private hasFocusIn;
2114     private count;
2115     constructor();
2116     bind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback: EventUtilsCallback<HTMLElementEventMap[K]>, scope?: any): EventUtilsCallback<HTMLElementEventMap[K]>;
2117     bind<T = any>(target: any, names: string, callback: EventUtilsCallback<T>, scope?: any): EventUtilsCallback<T>;
2118     unbind<K extends keyof HTMLElementEventMap>(target: any, name: K, callback?: EventUtilsCallback<HTMLElementEventMap[K]>): this;
2119     unbind<T = any>(target: any, names: string, callback?: EventUtilsCallback<T>): this;
2120     unbind(target: any): this;
2121     fire(target: any, name: string, args?: {}): this;
2122     dispatch(target: any, name: string, args?: {}): this;
2123     clean(target: any): this;
2124     destroy(): void;
2125     cancel<T>(e: EventUtilsEvent<T>): boolean;
2126     private executeHandlers;
2127 }
2128 interface SetAttribEvent {
2129     attrElm: HTMLElement;
2130     attrName: string;
2131     attrValue: string | boolean | number | null;
2132 }
2133 interface DOMUtilsSettings {
2134     schema: Schema;
2135     url_converter: URLConverter;
2136     url_converter_scope: any;
2137     ownEvents: boolean;
2138     keep_values: boolean;
2139     update_styles: boolean;
2140     root_element: HTMLElement | null;
2141     collect: boolean;
2142     onSetAttrib: (event: SetAttribEvent) => void;
2143     contentCssCors: boolean;
2144     referrerPolicy: ReferrerPolicy;
2145 }
2146 type Target = Node | Window;
2147 type RunArguments<T extends Node = Node> = string | T | Array<string | T> | null;
2148 type BoundEvent = [
2149     Target,
2150     string,
2151     EventUtilsCallback<any>,
2152     any
2153 ];
2154 type Callback<K extends string> = EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>;
2155 type RunResult<T, R> = T extends Array<any> ? R[] : false | R;
2156 interface DOMUtils {
2157     doc: Document;
2158     settings: Partial<DOMUtilsSettings>;
2159     win: Window;
2160     files: Record<string, boolean>;
2161     stdMode: boolean;
2162     boxModel: boolean;
2163     styleSheetLoader: StyleSheetLoader;
2164     boundEvents: BoundEvent[];
2165     styles: Styles;
2166     schema: Schema;
2167     events: EventUtils;
2168     root: Node | null;
2169     isBlock: {
2170         (node: Node | null): node is HTMLElement;
2171         (node: string): boolean;
2172     };
2173     clone: (node: Node, deep: boolean) => Node;
2174     getRoot: () => HTMLElement;
2175     getViewPort: (argWin?: Window) => GeomRect;
2176     getRect: (elm: string | HTMLElement) => GeomRect;
2177     getSize: (elm: string | HTMLElement) => {
2178         w: number;
2179         h: number;
2180     };
2181     getParent: {
2182         <K extends keyof HTMLElementTagNameMap>(node: string | Node | null, selector: K, root?: Node): HTMLElementTagNameMap[K] | null;
2183         <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node): T | null;
2184         (node: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node): Node | null;
2185     };
2186     getParents: {
2187         <K extends keyof HTMLElementTagNameMap>(elm: string | HTMLElementTagNameMap[K] | null, selector: K, root?: Node, collect?: boolean): Array<HTMLElementTagNameMap[K]>;
2188         <T extends Element>(node: string | Node | null, selector: string | ((node: Node) => node is T), root?: Node, collect?: boolean): T[];
2189         (elm: string | Node | null, selector?: string | ((node: Node) => boolean | void), root?: Node, collect?: boolean): Node[];
2190     };
2191     get: {
2192         <T extends Node>(elm: T): T;
2193         (elm: string): HTMLElement | null;
2194     };
2195     getNext: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
2196     getPrev: (node: Node | null, selector: string | ((node: Node) => boolean)) => Node | null;
2197     select: {
2198         <K extends keyof HTMLElementTagNameMap>(selector: K, scope?: string | Node): Array<HTMLElementTagNameMap[K]>;
2199         <T extends HTMLElement = HTMLElement>(selector: string, scope?: string | Node): T[];
2200     };
2201     is: {
2202         <T extends Element>(elm: Node | Node[] | null, selector: string): elm is T;
2203         (elm: Node | Node[] | null, selector: string): boolean;
2204     };
2205     add: (parentElm: RunArguments, name: string | Element, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null, create?: boolean) => HTMLElement;
2206     create: {
2207         <K extends keyof HTMLElementTagNameMap>(name: K, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElementTagNameMap[K];
2208         (name: string, attrs?: Record<string, string | boolean | number | null>, html?: string | Node | null): HTMLElement;
2209     };
2210     createHTML: (name: string, attrs?: Record<string, string | null>, html?: string) => string;
2211     createFragment: (html?: string) => DocumentFragment;
2212     remove: {
2213         <T extends Node>(node: T | T[], keepChildren?: boolean): typeof node extends Array<any> ? T[] : T;
2214         <T extends Node>(node: string, keepChildren?: boolean): T | false;
2215     };
2216     getStyle: {
2217         (elm: Element, name: string, computed: true): string;
2218         (elm: string | Element | null, name: string, computed?: boolean): string | undefined;
2219     };
2220     setStyle: (elm: string | Element | Element[], name: string, value: string | number | null) => void;
2221     setStyles: (elm: string | Element | Element[], stylesArg: StyleMap) => void;
2222     removeAllAttribs: (e: RunArguments<Element>) => void;
2223     setAttrib: (elm: RunArguments<Element>, name: string, value: string | boolean | number | null) => void;
2224     setAttribs: (elm: RunArguments<Element>, attrs: Record<string, string | boolean | number | null>) => void;
2225     getAttrib: (elm: string | Element | null, name: string, defaultVal?: string) => string;
2226     getAttribs: (elm: string | Element) => NamedNodeMap | Attr[];
2227     getPos: (elm: string | Element, rootElm?: Node) => {
2228         x: number;
2229         y: number;
2230     };
2231     parseStyle: (cssText: string) => Record<string, string>;
2232     serializeStyle: (stylesArg: StyleMap, name?: string) => string;
2233     addStyle: (cssText: string) => void;
2234     loadCSS: (url: string) => void;
2235     hasClass: (elm: string | Element, cls: string) => boolean;
2236     addClass: (elm: RunArguments<Element>, cls: string) => void;
2237     removeClass: (elm: RunArguments<Element>, cls: string) => void;
2238     toggleClass: (elm: RunArguments<Element>, cls: string, state?: boolean) => void;
2239     show: (elm: string | Node | Node[]) => void;
2240     hide: (elm: string | Node | Node[]) => void;
2241     isHidden: (elm: string | Node) => boolean;
2242     uniqueId: (prefix?: string) => string;
2243     setHTML: (elm: RunArguments<Element>, html: string) => void;
2244     getOuterHTML: (elm: string | Node) => string;
2245     setOuterHTML: (elm: string | Node | Node[], html: string) => void;
2246     decode: (text: string) => string;
2247     encode: (text: string) => string;
2248     insertAfter: {
2249         <T extends Node>(node: T | T[], reference: string | Node): T;
2250         <T extends Node>(node: RunArguments<T>, reference: string | Node): RunResult<typeof node, T>;
2251     };
2252     replace: {
2253         <T extends Node>(newElm: Node, oldElm: T | T[], keepChildren?: boolean): T;
2254         <T extends Node>(newElm: Node, oldElm: RunArguments<T>, keepChildren?: boolean): false | T;
2255     };
2256     rename: {
2257         <K extends keyof HTMLElementTagNameMap>(elm: Element, name: K): HTMLElementTagNameMap[K];
2258         (elm: Element, name: string): Element;
2259     };
2260     findCommonAncestor: (a: Node, b: Node) => Node | null;
2261     run<R, T extends Node>(this: DOMUtils, elm: T | T[], func: (node: T) => R, scope?: any): typeof elm extends Array<any> ? R[] : R;
2262     run<R, T extends Node>(this: DOMUtils, elm: RunArguments<T>, func: (node: T) => R, scope?: any): RunResult<typeof elm, R>;
2263     isEmpty: (node: Node, elements?: Record<string, any>, options?: ({
2264         includeZwsp?: boolean;
2265     })) => boolean;
2266     createRng: () => Range;
2267     nodeIndex: (node: Node, normalized?: boolean) => number;
2268     split: {
2269         <T extends Node>(parentElm: Node, splitElm: Node, replacementElm: T): T | undefined;
2270         <T extends Node>(parentElm: Node, splitElm: T): T | undefined;
2271     };
2272     bind: {
2273         <K extends string>(target: Target, name: K, func: Callback<K>, scope?: any): Callback<K>;
2274         <K extends string>(target: Target[], name: K, func: Callback<K>, scope?: any): Callback<K>[];
2275     };
2276     unbind: {
2277         <K extends string>(target: Target, name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils;
2278         <K extends string>(target: Target[], name?: K, func?: EventUtilsCallback<MappedEvent<HTMLElementEventMap, K>>): EventUtils[];
2279     };
2280     fire: (target: Node | Window, name: string, evt?: {}) => EventUtils;
2281     dispatch: (target: Node | Window, name: string, evt?: {}) => EventUtils;
2282     getContentEditable: (node: Node) => string | null;
2283     getContentEditableParent: (node: Node) => string | null;
2284     isEditable: (node: Node | null | undefined) => boolean;
2285     destroy: () => void;
2286     isChildOf: (node: Node, parent: Node) => boolean;
2287     dumpRng: (r: Range) => string;
2288 }
2289 interface ClientRect {
2290     left: number;
2291     top: number;
2292     bottom: number;
2293     right: number;
2294     width: number;
2295     height: number;
2296 }
2297 interface BookmarkManager {
2298     getBookmark: (type?: number, normalized?: boolean) => Bookmark;
2299     moveToBookmark: (bookmark: Bookmark) => void;
2300 }
2301 interface ControlSelection {
2302     isResizable: (elm: Element) => boolean;
2303     showResizeRect: (elm: HTMLElement) => void;
2304     hideResizeRect: () => void;
2305     updateResizeRect: (evt: EditorEvent<any>) => void;
2306     destroy: () => void;
2307 }
2308 interface WriterSettings {
2309     element_format?: 'xhtml' | 'html';
2310     entities?: string;
2311     entity_encoding?: EntityEncoding;
2312     indent?: boolean;
2313     indent_after?: string;
2314     indent_before?: string;
2315 }
2316 type Attributes = Array<{
2317     name: string;
2318     value: string;
2319 }>;
2320 interface Writer {
2321     cdata: (text: string) => void;
2322     comment: (text: string) => void;
2323     doctype: (text: string) => void;
2324     end: (name: string) => void;
2325     getContent: () => string;
2326     pi: (name: string, text?: string) => void;
2327     reset: () => void;
2328     start: (name: string, attrs?: Attributes | null, empty?: boolean) => void;
2329     text: (text: string, raw?: boolean) => void;
2330 }
2331 interface HtmlSerializerSettings extends WriterSettings {
2332     inner?: boolean;
2333     validate?: boolean;
2334 }
2335 interface HtmlSerializer {
2336     serialize: (node: AstNode) => string;
2337 }
2338 interface DomSerializerSettings extends DomParserSettings, WriterSettings, SchemaSettings, HtmlSerializerSettings {
2339     remove_trailing_brs?: boolean;
2340     url_converter?: URLConverter;
2341     url_converter_scope?: {};
2342 }
2343 interface DomSerializerImpl {
2344     schema: Schema;
2345     addNodeFilter: (name: string, callback: ParserFilterCallback) => void;
2346     addAttributeFilter: (name: string, callback: ParserFilterCallback) => void;
2347     getNodeFilters: () => ParserFilter[];
2348     getAttributeFilters: () => ParserFilter[];
2349     removeNodeFilter: (name: string, callback?: ParserFilterCallback) => void;
2350     removeAttributeFilter: (name: string, callback?: ParserFilterCallback) => void;
2351     serialize: {
2352         (node: Element, parserArgs: {
2353             format: 'tree';
2354         } & ParserArgs): AstNode;
2355         (node: Element, parserArgs?: ParserArgs): string;
2356     };
2357     addRules: (rules: string) => void;
2358     setRules: (rules: string) => void;
2359     addTempAttr: (name: string) => void;
2360     getTempAttrs: () => string[];
2361 }
2362 interface DomSerializer extends DomSerializerImpl {
2363 }
2364 interface EditorSelection {
2365     bookmarkManager: BookmarkManager;
2366     controlSelection: ControlSelection;
2367     dom: DOMUtils;
2368     win: Window;
2369     serializer: DomSerializer;
2370     editor: Editor;
2371     collapse: (toStart?: boolean) => void;
2372     setCursorLocation: {
2373         (node: Node, offset: number): void;
2374         (): void;
2375     };
2376     getContent: {
2377         (args: {
2378             format: 'tree';
2379         } & Partial<GetSelectionContentArgs>): AstNode;
2380         (args?: Partial<GetSelectionContentArgs>): string;
2381     };
2382     setContent: (content: string, args?: Partial<SetSelectionContentArgs>) => void;
2383     getBookmark: (type?: number, normalized?: boolean) => Bookmark;
2384     moveToBookmark: (bookmark: Bookmark) => void;
2385     select: (node: Node, content?: boolean) => Node;
2386     isCollapsed: () => boolean;
2387     isEditable: () => boolean;
2388     isForward: () => boolean;
2389     setNode: (elm: Element) => Element;
2390     getNode: () => HTMLElement;
2391     getSel: () => Selection | null;
2392     setRng: (rng: Range, forward?: boolean) => void;
2393     getRng: () => Range;
2394     getStart: (real?: boolean) => Element;
2395     getEnd: (real?: boolean) => Element;
2396     getSelectedBlocks: (startElm?: Element, endElm?: Element) => Element[];
2397     normalize: () => Range;
2398     selectorChanged: (selector: string, callback: (active: boolean, args: {
2399         node: Node;
2400         selector: String;
2401         parents: Node[];
2402     }) => void) => EditorSelection;
2403     selectorChangedWithUnbind: (selector: string, callback: (active: boolean, args: {
2404         node: Node;
2405         selector: String;
2406         parents: Node[];
2407     }) => void) => {
2408         unbind: () => void;
2409     };
2410     getScrollContainer: () => HTMLElement | undefined;
2411     scrollIntoView: (elm?: HTMLElement, alignToTop?: boolean) => void;
2412     placeCaretAt: (clientX: number, clientY: number) => void;
2413     getBoundingClientRect: () => ClientRect | DOMRect;
2414     destroy: () => void;
2415     expand: (options?: {
2416         type: 'word';
2417     }) => void;
2418 }
2419 type EditorCommandCallback<S> = (this: S, ui: boolean, value: any) => void;
2420 type EditorCommandsCallback = (command: string, ui: boolean, value?: any) => void;
2421 interface Commands {
2422     state: Record<string, (command: string) => boolean>;
2423     exec: Record<string, EditorCommandsCallback>;
2424     value: Record<string, (command: string) => string>;
2425 }
2426 interface ExecCommandArgs {
2427     skip_focus?: boolean;
2428 }
2429 interface EditorCommandsConstructor {
2430     readonly prototype: EditorCommands;
2431     new (editor: Editor): EditorCommands;
2432 }
2433 declare class EditorCommands {
2434     private readonly editor;
2435     private commands;
2436     constructor(editor: Editor);
2437     execCommand(command: string, ui?: boolean, value?: any, args?: ExecCommandArgs): boolean;
2438     queryCommandState(command: string): boolean;
2439     queryCommandValue(command: string): string;
2440     addCommands<K extends keyof Commands>(commandList: Commands[K], type: K): void;
2441     addCommands(commandList: Record<string, EditorCommandsCallback>): void;
2442     addCommand<S>(command: string, callback: EditorCommandCallback<S>, scope: S): void;
2443     addCommand(command: string, callback: EditorCommandCallback<Editor>): void;
2444     queryCommandSupported(command: string): boolean;
2445     addQueryStateHandler<S>(command: string, callback: (this: S) => boolean, scope: S): void;
2446     addQueryStateHandler(command: string, callback: (this: Editor) => boolean): void;
2447     addQueryValueHandler<S>(command: string, callback: (this: S) => string, scope: S): void;
2448     addQueryValueHandler(command: string, callback: (this: Editor) => string): void;
2449 }
2450 interface RawString {
2451     raw: string;
2452 }
2453 type Primitive = string | number | boolean | Record<string | number, any> | Function;
2454 type TokenisedString = [
2455     string,
2456     ...Primitive[]
2457 ];
2458 type Untranslated = Primitive | TokenisedString | RawString | null | undefined;
2459 type TranslatedString = string;
2460 interface I18n {
2461     getData: () => Record<string, Record<string, string>>;
2462     setCode: (newCode: string) => void;
2463     getCode: () => string;
2464     add: (code: string, items: Record<string, string>) => void;
2465     translate: (text: Untranslated) => TranslatedString;
2466     isRtl: () => boolean;
2467     hasCode: (code: string) => boolean;
2468 }
2469 interface Observable<T extends {}> {
2470     fire<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
2471     dispatch<K extends string, U extends MappedEvent<T, K>>(name: K, args?: U, bubble?: boolean): EditorEvent<U>;
2472     on<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void, prepend?: boolean): EventDispatcher<T>;
2473     off<K extends string>(name?: K, callback?: (event: EditorEvent<MappedEvent<T, K>>) => void): EventDispatcher<T>;
2474     once<K extends string>(name: K, callback: (event: EditorEvent<MappedEvent<T, K>>) => void): EventDispatcher<T>;
2475     hasEventListeners(name: string): boolean;
2476 }
2477 interface URISettings {
2478     base_uri?: URI;
2479 }
2480 interface URIConstructor {
2481     readonly prototype: URI;
2482     new (url: string, settings?: URISettings): URI;
2483     getDocumentBaseUrl: (loc: {
2484         protocol: string;
2485         host?: string;
2486         href?: string;
2487         pathname?: string;
2488     }) => string;
2489     parseDataUri: (uri: string) => {
2490         type: string;
2491         data: string;
2492     };
2493 }
2494 interface SafeUriOptions {
2495     readonly allow_html_data_urls?: boolean;
2496     readonly allow_script_urls?: boolean;
2497     readonly allow_svg_data_urls?: boolean;
2498 }
2499 declare class URI {
2500     static parseDataUri(uri: string): {
2501         type: string | undefined;
2502         data: string;
2503     };
2504     static isDomSafe(uri: string, context?: string, options?: SafeUriOptions): boolean;
2505     static getDocumentBaseUrl(loc: {
2506         protocol: string;
2507         host?: string;
2508         href?: string;
2509         pathname?: string;
2510     }): string;
2511     source: string;
2512     protocol: string | undefined;
2513     authority: string | undefined;
2514     userInfo: string | undefined;
2515     user: string | undefined;
2516     password: string | undefined;
2517     host: string | undefined;
2518     port: string | undefined;
2519     relative: string | undefined;
2520     path: string;
2521     directory: string;
2522     file: string | undefined;
2523     query: string | undefined;
2524     anchor: string | undefined;
2525     settings: URISettings;
2526     constructor(url: string, settings?: URISettings);
2527     setPath(path: string): void;
2528     toRelative(uri: string): string;
2529     toAbsolute(uri: string, noHost?: boolean): string;
2530     isSameOrigin(uri: URI): boolean;
2531     toRelPath(base: string, path: string): string;
2532     toAbsPath(base: string, path: string): string;
2533     getURI(noProtoHost?: boolean): string;
2534 }
2535 interface EditorManager extends Observable<EditorManagerEventMap> {
2536     defaultOptions: RawEditorOptions;
2537     majorVersion: string;
2538     minorVersion: string;
2539     releaseDate: string;
2540     activeEditor: Editor | null;
2541     focusedEditor: Editor | null;
2542     baseURI: URI;
2543     baseURL: string;
2544     documentBaseURL: string;
2545     i18n: I18n;
2546     suffix: string;
2547     add(this: EditorManager, editor: Editor): Editor;
2548     addI18n: (code: string, item: Record<string, string>) => void;
2549     createEditor(this: EditorManager, id: string, options: RawEditorOptions): Editor;
2550     execCommand(this: EditorManager, cmd: string, ui: boolean, value: any): boolean;
2551     get(this: EditorManager): Editor[];
2552     get(this: EditorManager, id: number | string): Editor | null;
2553     init(this: EditorManager, options: RawEditorOptions): Promise<Editor[]>;
2554     overrideDefaults(this: EditorManager, defaultOptions: Partial<RawEditorOptions>): void;
2555     remove(this: EditorManager): void;
2556     remove(this: EditorManager, selector: string): void;
2557     remove(this: EditorManager, editor: Editor): Editor | null;
2558     setActive(this: EditorManager, editor: Editor): void;
2559     setup(this: EditorManager): void;
2560     translate: (text: Untranslated) => TranslatedString;
2561     triggerSave: () => void;
2562     _setBaseUrl(this: EditorManager, baseUrl: string): void;
2563 }
2564 interface EditorObservable extends Observable<EditorEventMap> {
2565     bindPendingEventDelegates(this: Editor): void;
2566     toggleNativeEvent(this: Editor, name: string, state: boolean): void;
2567     unbindAllNativeEvents(this: Editor): void;
2568 }
2569 interface ProcessorSuccess<T> {
2570     valid: true;
2571     value: T;
2572 }
2573 interface ProcessorError {
2574     valid: false;
2575     message: string;
2576 }
2577 type SimpleProcessor = (value: unknown) => boolean;
2578 type Processor<T> = (value: unknown) => ProcessorSuccess<T> | ProcessorError;
2579 interface BuiltInOptionTypeMap {
2580     'string': string;
2581     'number': number;
2582     'boolean': boolean;
2583     'array': any[];
2584     'function': Function;
2585     'object': any;
2586     'string[]': string[];
2587     'object[]': any[];
2588     'regexp': RegExp;
2589 }
2590 type BuiltInOptionType = keyof BuiltInOptionTypeMap;
2591 interface BaseOptionSpec {
2592     immutable?: boolean;
2593     deprecated?: boolean;
2594     docsUrl?: string;
2595 }
2596 interface BuiltInOptionSpec<K extends BuiltInOptionType> extends BaseOptionSpec {
2597     processor: K;
2598     default?: BuiltInOptionTypeMap[K];
2599 }
2600 interface SimpleOptionSpec<T> extends BaseOptionSpec {
2601     processor: SimpleProcessor;
2602     default?: T;
2603 }
2604 interface OptionSpec<T, U> extends BaseOptionSpec {
2605     processor: Processor<U>;
2606     default?: T;
2607 }
2608 interface Options {
2609     register: {
2610         <K extends BuiltInOptionType>(name: string, spec: BuiltInOptionSpec<K>): void;
2611         <K extends keyof NormalizedEditorOptions>(name: K, spec: OptionSpec<NormalizedEditorOptions[K], EditorOptions[K]> | SimpleOptionSpec<NormalizedEditorOptions[K]>): void;
2612         <T, U>(name: string, spec: OptionSpec<T, U>): void;
2613         <T>(name: string, spec: SimpleOptionSpec<T>): void;
2614     };
2615     isRegistered: (name: string) => boolean;
2616     get: {
2617         <K extends keyof EditorOptions>(name: K): EditorOptions[K];
2618         <T>(name: string): T | undefined;
2619     };
2620     set: <K extends string, T>(name: K, value: K extends keyof NormalizedEditorOptions ? NormalizedEditorOptions[K] : T) => boolean;
2621     unset: (name: string) => boolean;
2622     isSet: (name: string) => boolean;
2623 }
2624 interface UploadResult$1 {
2625     element: HTMLImageElement;
2626     status: boolean;
2627     blobInfo: BlobInfo;
2628     uploadUri: string;
2629     removed: boolean;
2630 }
2631 interface EditorUpload {
2632     blobCache: BlobCache;
2633     addFilter: (filter: (img: HTMLImageElement) => boolean) => void;
2634     uploadImages: () => Promise<UploadResult$1[]>;
2635     uploadImagesAuto: () => Promise<UploadResult$1[]>;
2636     scanForImages: () => Promise<BlobInfoImagePair[]>;
2637     destroy: () => void;
2638 }
2639 type FormatChangeCallback = (state: boolean, data: {
2640     node: Node;
2641     format: string;
2642     parents: Element[];
2643 }) => void;
2644 interface FormatRegistry {
2645     get: {
2646         (name: string): Format[] | undefined;
2647         (): Record<string, Format[]>;
2648     };
2649     has: (name: string) => boolean;
2650     register: (name: string | Formats, format?: Format[] | Format) => void;
2651     unregister: (name: string) => Formats;
2652 }
2653 interface Formatter extends FormatRegistry {
2654     apply: (name: string, vars?: FormatVars, node?: Node | RangeLikeObject | null) => void;
2655     remove: (name: string, vars?: FormatVars, node?: Node | Range, similar?: boolean) => void;
2656     toggle: (name: string, vars?: FormatVars, node?: Node) => void;
2657     match: (name: string, vars?: FormatVars, node?: Node, similar?: boolean) => boolean;
2658     closest: (names: string[]) => string | null;
2659     matchAll: (names: string[], vars?: FormatVars) => string[];
2660     matchNode: (node: Node | null, name: string, vars?: FormatVars, similar?: boolean) => Format | undefined;
2661     canApply: (name: string) => boolean;
2662     formatChanged: (names: string, callback: FormatChangeCallback, similar?: boolean, vars?: FormatVars) => {
2663         unbind: () => void;
2664     };
2665     getCssText: (format: string | ApplyFormat) => string;
2666 }
2667 interface EditorMode {
2668     isReadOnly: () => boolean;
2669     set: (mode: string) => void;
2670     get: () => string;
2671     register: (mode: string, api: EditorModeApi) => void;
2672 }
2673 interface EditorModeApi {
2674     activate: () => void;
2675     deactivate: () => void;
2676     editorReadOnly: boolean;
2677 }
2678 interface Model {
2679     readonly table: {
2680         readonly getSelectedCells: () => HTMLTableCellElement[];
2681         readonly clearSelectedCells: (container: Node) => void;
2682     };
2683 }
2684 type ModelManager = AddOnManager<Model>;
2685 interface Plugin {
2686     getMetadata?: () => {
2687         name: string;
2688         url: string;
2689     };
2690     init?: (editor: Editor, url: string) => void;
2691     [key: string]: any;
2692 }
2693 type PluginManager = AddOnManager<void | Plugin>;
2694 interface ShortcutsConstructor {
2695     readonly prototype: Shortcuts;
2696     new (editor: Editor): Shortcuts;
2697 }
2698 type CommandFunc = string | [
2699     string,
2700     boolean,
2701     any
2702 ] | (() => void);
2703 declare class Shortcuts {
2704     private readonly editor;
2705     private readonly shortcuts;
2706     private pendingPatterns;
2707     constructor(editor: Editor);
2708     add(pattern: string, desc: string | null, cmdFunc: CommandFunc, scope?: any): boolean;
2709     remove(pattern: string): boolean;
2710     private normalizeCommandFunc;
2711     private createShortcut;
2712     private hasModifier;
2713     private isFunctionKey;
2714     private matchShortcut;
2715     private executeShortcutAction;
2716 }
2717 interface RenderResult {
2718     iframeContainer?: HTMLElement;
2719     editorContainer: HTMLElement;
2720     api?: Partial<EditorUiApi>;
2721 }
2722 interface Theme {
2723     ui?: any;
2724     inline?: any;
2725     execCommand?: (command: string, ui?: boolean, value?: any) => boolean;
2726     destroy?: () => void;
2727     init?: (editor: Editor, url: string) => void;
2728     renderUI?: () => Promise<RenderResult> | RenderResult;
2729     getNotificationManagerImpl?: () => NotificationManagerImpl;
2730     getWindowManagerImpl?: () => WindowManagerImpl;
2731 }
2732 type ThemeManager = AddOnManager<void | Theme>;
2733 interface EditorConstructor {
2734     readonly prototype: Editor;
2735     new (id: string, options: RawEditorOptions, editorManager: EditorManager): Editor;
2736 }
2737 declare class Editor implements EditorObservable {
2738     documentBaseUrl: string;
2739     baseUri: URI;
2740     id: string;
2741     plugins: Record<string, Plugin>;
2742     documentBaseURI: URI;
2743     baseURI: URI;
2744     contentCSS: string[];
2745     contentStyles: string[];
2746     ui: EditorUi;
2747     mode: EditorMode;
2748     options: Options;
2749     editorUpload: EditorUpload;
2750     shortcuts: Shortcuts;
2751     loadedCSS: Record<string, any>;
2752     editorCommands: EditorCommands;
2753     suffix: string;
2754     editorManager: EditorManager;
2755     hidden: boolean;
2756     inline: boolean;
2757     hasVisual: boolean;
2758     isNotDirty: boolean;
2759     annotator: Annotator;
2760     bodyElement: HTMLElement | undefined;
2761     bookmark: any;
2762     composing: boolean;
2763     container: HTMLElement;
2764     contentAreaContainer: HTMLElement;
2765     contentDocument: Document;
2766     contentWindow: Window;
2767     delegates: Record<string, EventUtilsCallback<any>> | undefined;
2768     destroyed: boolean;
2769     dom: DOMUtils;
2770     editorContainer: HTMLElement;
2771     eventRoot: Element | undefined;
2772     formatter: Formatter;
2773     formElement: HTMLElement | undefined;
2774     formEventDelegate: ((e: Event) => void) | undefined;
2775     hasHiddenInput: boolean;
2776     iframeElement: HTMLIFrameElement | null;
2777     iframeHTML: string | undefined;
2778     initialized: boolean;
2779     notificationManager: NotificationManager;
2780     orgDisplay: string;
2781     orgVisibility: string | undefined;
2782     parser: DomParser;
2783     quirks: Quirks;
2784     readonly: boolean;
2785     removed: boolean;
2786     schema: Schema;
2787     selection: EditorSelection;
2788     serializer: DomSerializer;
2789     startContent: string;
2790     targetElm: HTMLElement;
2791     theme: Theme;
2792     model: Model;
2793     undoManager: UndoManager;
2794     windowManager: WindowManager;
2795     _beforeUnload: (() => void) | undefined;
2796     _eventDispatcher: EventDispatcher<NativeEventMap> | undefined;
2797     _nodeChangeDispatcher: NodeChange;
2798     _pendingNativeEvents: string[];
2799     _selectionOverrides: SelectionOverrides;
2800     _skinLoaded: boolean;
2801     _editableRoot: boolean;
2802     bindPendingEventDelegates: EditorObservable['bindPendingEventDelegates'];
2803     toggleNativeEvent: EditorObservable['toggleNativeEvent'];
2804     unbindAllNativeEvents: EditorObservable['unbindAllNativeEvents'];
2805     fire: EditorObservable['fire'];
2806     dispatch: EditorObservable['dispatch'];
2807     on: EditorObservable['on'];
2808     off: EditorObservable['off'];
2809     once: EditorObservable['once'];
2810     hasEventListeners: EditorObservable['hasEventListeners'];
2811     constructor(id: string, options: RawEditorOptions, editorManager: EditorManager);
2812     render(): void;
2813     focus(skipFocus?: boolean): void;
2814     hasFocus(): boolean;
2815     translate(text: Untranslated): TranslatedString;
2816     getParam<K extends BuiltInOptionType>(name: string, defaultVal: BuiltInOptionTypeMap[K], type: K): BuiltInOptionTypeMap[K];
2817     getParam<K extends keyof NormalizedEditorOptions>(name: K, defaultVal?: NormalizedEditorOptions[K], type?: BuiltInOptionType): NormalizedEditorOptions[K];
2818     getParam<T>(name: string, defaultVal: T, type?: BuiltInOptionType): T;
2819     hasPlugin(name: string, loaded?: boolean): boolean;
2820     nodeChanged(args?: any): void;
2821     addCommand<S>(name: string, callback: EditorCommandCallback<S>, scope: S): void;
2822     addCommand(name: string, callback: EditorCommandCallback<Editor>): void;
2823     addQueryStateHandler<S>(name: string, callback: (this: S) => boolean, scope?: S): void;
2824     addQueryStateHandler(name: string, callback: (this: Editor) => boolean): void;
2825     addQueryValueHandler<S>(name: string, callback: (this: S) => string, scope: S): void;
2826     addQueryValueHandler(name: string, callback: (this: Editor) => string): void;
2827     addShortcut(pattern: string, desc: string, cmdFunc: string | [
2828         string,
2829         boolean,
2830         any
2831     ] | (() => void), scope?: any): void;
2832     execCommand(cmd: string, ui?: boolean, value?: any, args?: ExecCommandArgs): boolean;
2833     queryCommandState(cmd: string): boolean;
2834     queryCommandValue(cmd: string): string;
2835     queryCommandSupported(cmd: string): boolean;
2836     show(): void;
2837     hide(): void;
2838     isHidden(): boolean;
2839     setProgressState(state: boolean, time?: number): void;
2840     load(args?: Partial<SetContentArgs>): string;
2841     save(args?: Partial<GetContentArgs>): string;
2842     setContent(content: string, args?: Partial<SetContentArgs>): string;
2843     setContent(content: AstNode, args?: Partial<SetContentArgs>): AstNode;
2844     setContent(content: Content, args?: Partial<SetContentArgs>): Content;
2845     getContent(args: {
2846         format: 'tree';
2847     } & Partial<GetContentArgs>): AstNode;
2848     getContent(args?: Partial<GetContentArgs>): string;
2849     insertContent(content: string, args?: any): void;
2850     resetContent(initialContent?: string): void;
2851     isDirty(): boolean;
2852     setDirty(state: boolean): void;
2853     getContainer(): HTMLElement;
2854     getContentAreaContainer(): HTMLElement;
2855     getElement(): HTMLElement;
2856     getWin(): Window;
2857     getDoc(): Document;
2858     getBody(): HTMLElement;
2859     convertURL(url: string, name: string, elm?: string | Element): string;
2860     addVisual(elm?: HTMLElement): void;
2861     setEditableRoot(state: boolean): void;
2862     hasEditableRoot(): boolean;
2863     remove(): void;
2864     destroy(automatic?: boolean): void;
2865     uploadImages(): Promise<UploadResult$1[]>;
2866     _scanForImages(): Promise<BlobInfoImagePair[]>;
2867 }
2868 interface UrlObject {
2869     prefix: string;
2870     resource: string;
2871     suffix: string;
2872 }
2873 type WaitState = 'added' | 'loaded';
2874 type AddOnConstructor<T> = (editor: Editor, url: string) => T;
2875 interface AddOnManager<T> {
2876     items: AddOnConstructor<T>[];
2877     urls: Record<string, string>;
2878     lookup: Record<string, {
2879         instance: AddOnConstructor<T>;
2880     }>;
2881     get: (name: string) => AddOnConstructor<T> | undefined;
2882     requireLangPack: (name: string, languages?: string) => void;
2883     add: (id: string, addOn: AddOnConstructor<T>) => AddOnConstructor<T>;
2884     remove: (name: string) => void;
2885     createUrl: (baseUrl: UrlObject, dep: string | UrlObject) => UrlObject;
2886     load: (name: string, addOnUrl: string | UrlObject) => Promise<void>;
2887     waitFor: (name: string, state?: WaitState) => Promise<void>;
2888 }
2889 interface RangeUtils {
2890     walk: (rng: Range, callback: (nodes: Node[]) => void) => void;
2891     split: (rng: Range) => RangeLikeObject;
2892     normalize: (rng: Range) => boolean;
2893     expand: (rng: Range, options?: {
2894         type: 'word';
2895     }) => Range;
2896 }
2897 interface ScriptLoaderSettings {
2898     referrerPolicy?: ReferrerPolicy;
2899 }
2900 interface ScriptLoaderConstructor {
2901     readonly prototype: ScriptLoader;
2902     new (): ScriptLoader;
2903     ScriptLoader: ScriptLoader;
2904 }
2905 declare class ScriptLoader {
2906     static ScriptLoader: ScriptLoader;
2907     private settings;
2908     private states;
2909     private queue;
2910     private scriptLoadedCallbacks;
2911     private queueLoadedCallbacks;
2912     private loading;
2913     constructor(settings?: ScriptLoaderSettings);
2914     _setReferrerPolicy(referrerPolicy: ReferrerPolicy): void;
2915     loadScript(url: string): Promise<void>;
2916     isDone(url: string): boolean;
2917     markDone(url: string): void;
2918     add(url: string): Promise<void>;
2919     load(url: string): Promise<void>;
2920     remove(url: string): void;
2921     loadQueue(): Promise<void>;
2922     loadScripts(scripts: string[]): Promise<void>;
2923 }
2924 type TextProcessCallback = (node: Text, offset: number, text: string) => number;
2925 interface Spot {
2926     container: Text;
2927     offset: number;
2928 }
2929 interface TextSeeker {
2930     backwards: (node: Node, offset: number, process: TextProcessCallback, root?: Node) => Spot | null;
2931     forwards: (node: Node, offset: number, process: TextProcessCallback, root?: Node) => Spot | null;
2932 }
2933 interface DomTreeWalkerConstructor {
2934     readonly prototype: DomTreeWalker;
2935     new (startNode: Node, rootNode: Node): DomTreeWalker;
2936 }
2937 declare class DomTreeWalker {
2938     private readonly rootNode;
2939     private node;
2940     constructor(startNode: Node, rootNode: Node);
2941     current(): Node | null | undefined;
2942     next(shallow?: boolean): Node | null | undefined;
2943     prev(shallow?: boolean): Node | null | undefined;
2944     prev2(shallow?: boolean): Node | null | undefined;
2945     private findSibling;
2946     private findPreviousNode;
2947 }
2948 interface Version {
2949     major: number;
2950     minor: number;
2951 }
2952 interface Env {
2953     transparentSrc: string;
2954     documentMode: number;
2955     cacheSuffix: any;
2956     container: any;
2957     canHaveCSP: boolean;
2958     windowsPhone: boolean;
2959     browser: {
2960         current: string | undefined;
2961         version: Version;
2962         isEdge: () => boolean;
2963         isChromium: () => boolean;
2964         isIE: () => boolean;
2965         isOpera: () => boolean;
2966         isFirefox: () => boolean;
2967         isSafari: () => boolean;
2968     };
2969     os: {
2970         current: string | undefined;
2971         version: Version;
2972         isWindows: () => boolean;
2973         isiOS: () => boolean;
2974         isAndroid: () => boolean;
2975         isMacOS: () => boolean;
2976         isLinux: () => boolean;
2977         isSolaris: () => boolean;
2978         isFreeBSD: () => boolean;
2979         isChromeOS: () => boolean;
2980     };
2981     deviceType: {
2982         isiPad: () => boolean;
2983         isiPhone: () => boolean;
2984         isTablet: () => boolean;
2985         isPhone: () => boolean;
2986         isTouch: () => boolean;
2987         isWebView: () => boolean;
2988         isDesktop: () => boolean;
2989     };
2990 }
2991 interface FakeClipboardItem {
2992     readonly items: Record<string, any>;
2993     readonly types: ReadonlyArray<string>;
2994     readonly getType: <D = any>(type: string) => D | undefined;
2995 }
2996 interface FakeClipboard {
2997     readonly FakeClipboardItem: (items: Record<string, any>) => FakeClipboardItem;
2998     readonly write: (data: FakeClipboardItem[]) => void;
2999     readonly read: () => FakeClipboardItem[] | undefined;
3000     readonly clear: () => void;
3001 }
3002 interface FocusManager {
3003     isEditorUIElement: (elm: Element) => boolean;
3004 }
3005 interface EntitiesMap {
3006     [name: string]: string;
3007 }
3008 interface Entities {
3009     encodeRaw: (text: string, attr?: boolean) => string;
3010     encodeAllRaw: (text: string) => string;
3011     encodeNumeric: (text: string, attr?: boolean) => string;
3012     encodeNamed: (text: string, attr?: boolean, entities?: EntitiesMap) => string;
3013     getEncodeFunc: (name: string, entities?: string) => (text: string, attr?: boolean) => string;
3014     decode: (text: string) => string;
3015 }
3016 interface IconPack {
3017     icons: Record<string, string>;
3018 }
3019 interface IconManager {
3020     add: (id: string, iconPack: IconPack) => void;
3021     get: (id: string) => IconPack;
3022     has: (id: string) => boolean;
3023 }
3024 interface Resource {
3025     load: <T = any>(id: string, url: string) => Promise<T>;
3026     add: (id: string, data: any) => void;
3027     unload: (id: string) => void;
3028 }
3029 type TextPatterns_d_Pattern = Pattern;
3030 type TextPatterns_d_RawPattern = RawPattern;
3031 type TextPatterns_d_DynamicPatternsLookup = DynamicPatternsLookup;
3032 type TextPatterns_d_RawDynamicPatternsLookup = RawDynamicPatternsLookup;
3033 type TextPatterns_d_DynamicPatternContext = DynamicPatternContext;
3034 type TextPatterns_d_BlockCmdPattern = BlockCmdPattern;
3035 type TextPatterns_d_BlockPattern = BlockPattern;
3036 type TextPatterns_d_BlockFormatPattern = BlockFormatPattern;
3037 type TextPatterns_d_InlineCmdPattern = InlineCmdPattern;
3038 type TextPatterns_d_InlinePattern = InlinePattern;
3039 type TextPatterns_d_InlineFormatPattern = InlineFormatPattern;
3040 declare namespace TextPatterns_d {
3041     export { TextPatterns_d_Pattern as Pattern, TextPatterns_d_RawPattern as RawPattern, TextPatterns_d_DynamicPatternsLookup as DynamicPatternsLookup, TextPatterns_d_RawDynamicPatternsLookup as RawDynamicPatternsLookup, TextPatterns_d_DynamicPatternContext as DynamicPatternContext, TextPatterns_d_BlockCmdPattern as BlockCmdPattern, TextPatterns_d_BlockPattern as BlockPattern, TextPatterns_d_BlockFormatPattern as BlockFormatPattern, TextPatterns_d_InlineCmdPattern as InlineCmdPattern, TextPatterns_d_InlinePattern as InlinePattern, TextPatterns_d_InlineFormatPattern as InlineFormatPattern, };
3042 }
3043 interface Delay {
3044     setEditorInterval: (editor: Editor, callback: () => void, time?: number) => number;
3045     setEditorTimeout: (editor: Editor, callback: () => void, time?: number) => number;
3046 }
3047 type UploadResult = UploadResult$2;
3048 interface ImageUploader {
3049     upload: (blobInfos: BlobInfo[], showNotification?: boolean) => Promise<UploadResult[]>;
3050 }
3051 type ArrayCallback$1<T, R> = (this: any, x: T, i: number, xs: ArrayLike<T>) => R;
3052 type ObjCallback$1<T, R> = (this: any, value: T, key: string, obj: Record<string, T>) => R;
3053 type ArrayCallback<T, R> = ArrayCallback$1<T, R>;
3054 type ObjCallback<T, R> = ObjCallback$1<T, R>;
3055 type WalkCallback<T> = (this: any, o: T, i: string, n: keyof T | undefined) => boolean | void;
3056 interface Tools {
3057     is: (obj: any, type?: string) => boolean;
3058     isArray: <T>(arr: any) => arr is Array<T>;
3059     inArray: <T>(arr: ArrayLike<T>, value: T) => number;
3060     grep: {
3061         <T>(arr: ArrayLike<T> | null | undefined, pred?: ArrayCallback<T, boolean>): T[];
3062         <T>(arr: Record<string, T> | null | undefined, pred?: ObjCallback<T, boolean>): T[];
3063     };
3064     trim: (str: string | null | undefined) => string;
3065     toArray: <T>(obj: ArrayLike<T>) => T[];
3066     hasOwn: (obj: any, name: string) => boolean;
3067     makeMap: (items: ArrayLike<string> | string | undefined, delim?: string | RegExp, map?: Record<string, {}>) => Record<string, {}>;
3068     each: {
3069         <T>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, void | boolean>, scope?: any): boolean;
3070         <T>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, void | boolean>, scope?: any): boolean;
3071     };
3072     map: {
3073         <T, R>(arr: ArrayLike<T> | null | undefined, cb: ArrayCallback<T, R>): R[];
3074         <T, R>(obj: Record<string, T> | null | undefined, cb: ObjCallback<T, R>): R[];
3075     };
3076     extend: (obj: Object, ext: Object, ...objs: Object[]) => any;
3077     walk: <T extends Record<string, any>>(obj: T, f: WalkCallback<T>, n?: keyof T, scope?: any) => void;
3078     resolve: (path: string, o?: Object) => any;
3079     explode: (s: string | string[], d?: string | RegExp) => string[];
3080     _addCacheSuffix: (url: string) => string;
3081 }
3082 interface KeyboardLikeEvent {
3083     shiftKey: boolean;
3084     ctrlKey: boolean;
3085     altKey: boolean;
3086     metaKey: boolean;
3087 }
3088 interface VK {
3089     BACKSPACE: number;
3090     DELETE: number;
3091     DOWN: number;
3092     ENTER: number;
3093     ESC: number;
3094     LEFT: number;
3095     RIGHT: number;
3096     SPACEBAR: number;
3097     TAB: number;
3098     UP: number;
3099     PAGE_UP: number;
3100     PAGE_DOWN: number;
3101     END: number;
3102     HOME: number;
3103     modifierPressed: (e: KeyboardLikeEvent) => boolean;
3104     metaKeyPressed: (e: KeyboardLikeEvent) => boolean;
3105 }
3106 interface DOMUtilsNamespace {
3107     (doc: Document, settings: Partial<DOMUtilsSettings>): DOMUtils;
3108     DOM: DOMUtils;
3109     nodeIndex: (node: Node, normalized?: boolean) => number;
3110 }
3111 interface RangeUtilsNamespace {
3112     (dom: DOMUtils): RangeUtils;
3113     compareRanges: (rng1: RangeLikeObject, rng2: RangeLikeObject) => boolean;
3114     getCaretRangeFromPoint: (clientX: number, clientY: number, doc: Document) => Range;
3115     getSelectedNode: (range: Range) => Node;
3116     getNode: (container: Node, offset: number) => Node;
3117 }
3118 interface AddOnManagerNamespace {
3119     <T>(): AddOnManager<T>;
3120     language: string | undefined;
3121     languageLoad: boolean;
3122     baseURL: string;
3123     PluginManager: PluginManager;
3124     ThemeManager: ThemeManager;
3125     ModelManager: ModelManager;
3126 }
3127 interface BookmarkManagerNamespace {
3128     (selection: EditorSelection): BookmarkManager;
3129     isBookmarkNode: (node: Node) => boolean;
3130 }
3131 interface TinyMCE extends EditorManager {
3132     geom: {
3133         Rect: Rect;
3134     };
3135     util: {
3136         Delay: Delay;
3137         Tools: Tools;
3138         VK: VK;
3139         URI: URIConstructor;
3140         EventDispatcher: EventDispatcherConstructor<any>;
3141         Observable: Observable<any>;
3142         I18n: I18n;
3143         LocalStorage: Storage;
3144         ImageUploader: ImageUploader;
3145     };
3146     dom: {
3147         EventUtils: EventUtilsConstructor;
3148         TreeWalker: DomTreeWalkerConstructor;
3149         TextSeeker: (dom: DOMUtils, isBlockBoundary?: (node: Node) => boolean) => TextSeeker;
3150         DOMUtils: DOMUtilsNamespace;
3151         ScriptLoader: ScriptLoaderConstructor;
3152         RangeUtils: RangeUtilsNamespace;
3153         Serializer: (settings: DomSerializerSettings, editor?: Editor) => DomSerializer;
3154         ControlSelection: (selection: EditorSelection, editor: Editor) => ControlSelection;
3155         BookmarkManager: BookmarkManagerNamespace;
3156         Selection: (dom: DOMUtils, win: Window, serializer: DomSerializer, editor: Editor) => EditorSelection;
3157         StyleSheetLoader: (documentOrShadowRoot: Document | ShadowRoot, settings: StyleSheetLoaderSettings) => StyleSheetLoader;
3158         Event: EventUtils;
3159     };
3160     html: {
3161         Styles: (settings?: StylesSettings, schema?: Schema) => Styles;
3162         Entities: Entities;
3163         Node: AstNodeConstructor;
3164         Schema: (settings?: SchemaSettings) => Schema;
3165         DomParser: (settings?: DomParserSettings, schema?: Schema) => DomParser;
3166         Writer: (settings?: WriterSettings) => Writer;
3167         Serializer: (settings?: HtmlSerializerSettings, schema?: Schema) => HtmlSerializer;
3168     };
3169     AddOnManager: AddOnManagerNamespace;
3170     Annotator: (editor: Editor) => Annotator;
3171     Editor: EditorConstructor;
3172     EditorCommands: EditorCommandsConstructor;
3173     EditorManager: EditorManager;
3174     EditorObservable: EditorObservable;
3175     Env: Env;
3176     FocusManager: FocusManager;
3177     Formatter: (editor: Editor) => Formatter;
3178     NotificationManager: (editor: Editor) => NotificationManager;
3179     Shortcuts: ShortcutsConstructor;
3180     UndoManager: (editor: Editor) => UndoManager;
3181     WindowManager: (editor: Editor) => WindowManager;
3182     DOM: DOMUtils;
3183     ScriptLoader: ScriptLoader;
3184     PluginManager: PluginManager;
3185     ThemeManager: ThemeManager;
3186     ModelManager: ModelManager;
3187     IconManager: IconManager;
3188     Resource: Resource;
3189     FakeClipboard: FakeClipboard;
3190     trim: Tools['trim'];
3191     isArray: Tools['isArray'];
3192     is: Tools['is'];
3193     toArray: Tools['toArray'];
3194     makeMap: Tools['makeMap'];
3195     each: Tools['each'];
3196     map: Tools['map'];
3197     grep: Tools['grep'];
3198     inArray: Tools['inArray'];
3199     extend: Tools['extend'];
3200     walk: Tools['walk'];
3201     resolve: Tools['resolve'];
3202     explode: Tools['explode'];
3203     _addCacheSuffix: Tools['_addCacheSuffix'];
3204 }
3205 declare const tinymce: TinyMCE;
3206 export { AddOnManager, Annotator, AstNode, Bookmark, BookmarkManager, ControlSelection, DOMUtils, Delay, DomParser, DomParserSettings, DomSerializer, DomSerializerSettings, DomTreeWalker, Editor, EditorCommands, EditorEvent, EditorManager, EditorModeApi, EditorObservable, EditorOptions, EditorSelection, Entities, Env, EventDispatcher, EventUtils, EventTypes_d as Events, FakeClipboard, FocusManager, Format_d as Formats, Formatter, GeomRect, HtmlSerializer, HtmlSerializerSettings, I18n, IconManager, Model, ModelManager, NotificationApi, NotificationManager, NotificationSpec, Observable, Plugin, PluginManager, RangeUtils, RawEditorOptions, Rect, Resource, Schema, SchemaSettings, ScriptLoader, Shortcuts, StyleSheetLoader, Styles, TextPatterns_d as TextPatterns, TextSeeker, Theme, ThemeManager, TinyMCE, Tools, URI, Ui_d as Ui, UndoManager, VK, WindowManager, Writer, WriterSettings, tinymce as default };