import '../scss/style.scss'; import { Direction } from './arenaEvents'; import { ArenaSelection, ElementHelper } from './helpers'; import { AnyArena, AnyArenaNode, ArenaFormating, ArenaInlineInterface, ArenaInterval, ArenaMediatorInterface, ArenaMiddleware, ArenaNodeInline, ArenaNodeRoot, ArenaNodeText, ArenaOptionsChild, ArenaPlugin, ArenaSingleInterface, ArenaTextInterface, ChangeDataListener, ChildArena, ChildArenaNode, CommandAction, CreatorBarOptions, CreatorOptions, MetaData, NodeAttributes, ParentArenaNode, TagAndAttributes, TextarenaData, TextarenaOptions, ToolbarOptions, ToolOptions } from './interfaces'; import { ArenaCommandManager, ArenaHandler, ArenaHistory, ArenaModel, ArenaServiceManager, MiddlewareWhenCondition } from './services'; export declare const defaultOptions: TextarenaOptions; declare class Textarena { constructor(container: HTMLElement, options?: TextarenaOptions); getContainerElement(): ElementHelper; getEditorElement(): ElementHelper; destructor(): void; setOptions(options: TextarenaOptions): void; getData(types?: string[]): TextarenaData; getDataHtml(): string; getOutput(type: string): string; getJson(): string; setData(data: Partial | undefined): void; setEditable(editable: boolean): void; setOnChange(onChange: ChangeDataListener): void; setOnReady(onReady: ChangeDataListener): void; setOnEvent(onEvent: ArenaHandler): void; setPlugins(plugins: ArenaPlugin[]): void; setToolbarOptions(toolbarOptions: ToolbarOptions): void; setCreatorBarOptions(creatorBarOptions: CreatorBarOptions): void; getRootArenaName(): string; getRootModel(): ArenaNodeRoot; protected simpleArenas: ChildArena[]; getSimpleArenas(): ChildArena[]; addSimpleArenas(arena: ChildArena): void; protected middleArenas: ChildArena[]; getMiddleArenas(): ChildArena[]; addMiddleArenas(arena: ChildArena): void; setDefaultTextArena(arena: ArenaMediatorInterface | ArenaTextInterface): void; getDefaultTextArena(): ArenaMediatorInterface | ArenaTextInterface | undefined; getArena(name: string): AnyArena | undefined; getArenas(): AnyArena[]; registerArena(arenaOptions: ArenaOptionsChild, markers?: TagAndAttributes[], parentArenas?: string[]): ChildArena | ArenaInlineInterface; registerFormating(formating: ArenaFormating, markers: TagAndAttributes[]): ArenaFormating; registerCommand(command: string, action: CommandAction): ArenaCommandManager; registerShortcut(shortcut: string, command: string, description?: string): ArenaCommandManager; registerMiddleware(middleware: ArenaMiddleware, when: MiddlewareWhenCondition, opts?: { scope?: AnyArena; priority?: number; }): void; applyMiddlewares(sel: ArenaSelection, text: string, when: MiddlewareWhenCondition): [boolean, ArenaSelection]; registerTool(opts: ToolOptions): void; registerCreator(opts: CreatorOptions): void; applyArenaToSelection(selection: ArenaSelection, arena: ArenaMediatorInterface | ArenaTextInterface): ArenaSelection; applyFormationToSelection(selection: ArenaSelection, formating: ArenaFormating): ArenaSelection; clearFormationInSelection(selection: ArenaSelection): ArenaSelection; insertBeforeSelected(selection: ArenaSelection, arena: ChildArena, replace?: boolean): [ArenaSelection, AnyArenaNode | undefined]; breakSelection(selection: ArenaSelection): ArenaSelection; removeSelection(selection: ArenaSelection, direction: Direction): ArenaSelection; createAndInsertNode(arena: ChildArena, parent: ParentArenaNode, offset: number, before?: boolean, onlyChild?: boolean, replace?: boolean): ChildArenaNode | undefined; moveChild(selection: ArenaSelection, direction: 'up' | 'down'): ArenaSelection; getInlineInterval(selection: ArenaSelection): ArenaInterval | undefined; addInlineNode(selection: ArenaSelection, arena: ArenaInlineInterface): ArenaNodeInline | undefined; getInlineNode(selection: ArenaSelection, arena: ArenaInlineInterface): [ArenaNodeText, ArenaNodeInline] | undefined; removeInlineNode(selection: ArenaSelection, node: ArenaNodeInline): void; updateInlineNode(selection: ArenaSelection, node: ArenaNodeInline): void; subscribe(event: string, handler: ArenaHandler): void; fire(name: string, detail?: unknown): void; isAllowedNode(node: AnyArenaNode, arena: ChildArena): boolean; getCurrentSelection(): ArenaSelection | undefined; getModel(): ArenaModel; getHistory(): ArenaHistory; insertData(selection: ArenaSelection, data: DataTransfer): ArenaSelection | undefined; insertText(selection: ArenaSelection, text: string): ArenaSelection; insertHtml(selection: ArenaSelection, html: string): ArenaSelection; protected debug: boolean; protected container: ElementHelper; protected editor: ElementHelper; protected placeholder: ElementHelper; protected placeholderText: string; protected placeholderShowed: boolean; protected options: TextarenaOptions; protected meta: MetaData; protected asm: ArenaServiceManager; protected outputTypes: string[]; protected start(): void; ensureLastChildIsText(): void; checkPlaceholder(): void; execCommand(command: string, selection?: ArenaSelection): void; registerInsertReplaceCommand(command: string, arena: ArenaMediatorInterface | ArenaSingleInterface, attrs?: NodeAttributes): ArenaCommandManager; clearHtml(html: string): string; } declare global { interface Window { asm: undefined | ArenaServiceManager; debugSymbol: unknown; FB: undefined | { init: (opts: { xfbml: boolean; version: string; }) => void; }; instgrm: undefined | { Embeds: { process: () => void; }; }; } } export default Textarena;