import { Direction } from './events/RemoveEvent';
import ArenaSelection from './helpers/ArenaSelection';
import ElementHelper from './helpers/ElementHelper';
import { AnyArena, ArenaInlineInterface, ArenaMediatorInterface, ArenaTextInterface, ChildArena } from './interfaces/Arena';
import { ArenaNodeInline, ChildArenaNode, ParentArenaNode } from './interfaces/ArenaNode';
import ArenaFormating, { TagAndAttributes } from './interfaces/ArenaFormating';
import ArenaOptionsChild from './interfaces/ArenaOptions';
import ArenaPlugin from './interfaces/ArenaPlugin';
import ChangeDataListener from './interfaces/ChangeHandler';
import CommandAction from './interfaces/CommandAction';
import CreatorBarOptions from './interfaces/CreatorBarOptions';
import CreatorOptions from './interfaces/CreatorOptions';
import MetaData from './interfaces/MetaData';
import TextarenaData from './interfaces/TextarenaData';
import TextarenaOptions from './interfaces/TextarenaOptions';
import ToolbarOptions from './interfaces/ToolbarOptions';
import ToolOptions from './interfaces/ToolOptions';
import ArenaCommandManager from './services/ArenaCommandManager';
import ArenaServiceManager from './services/ArenaServiceManager';
import { ArenaHandler } from './services/EventManager';
declare class Textarena {
    constructor(container: HTMLElement, options?: TextarenaOptions);
    getContainerElement(): ElementHelper;
    getEditorElement(): ElementHelper;
    destructor(): void;
    setOptions(options: TextarenaOptions): void;
    getData(): TextarenaData;
    getDataHtml(): string;
    getPublicHtml(): string;
    getJson(): string;
    setData(data: TextarenaData | 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;
    protected simpleArenas: ChildArena[];
    getSimpleArenas(): ChildArena[];
    addSimpleArenas(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): ArenaCommandManager;
    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): ArenaSelection;
    breakSelection(selection: ArenaSelection): ArenaSelection;
    removeSelection(selection: ArenaSelection, direction: Direction): ArenaSelection;
    createAndInsertNode(arena: ChildArena, parent: ParentArenaNode, offset: number, before?: boolean, onlyChild?: boolean): ChildArenaNode | undefined;
    moveChild(selection: ArenaSelection, direction: 'up' | 'down'): ArenaSelection;
    addInlineNode(selection: ArenaSelection, arena: ArenaInlineInterface): ArenaNodeInline | undefined;
    getInlineNode(selection: ArenaSelection, arena: ArenaInlineInterface): ArenaNodeInline | undefined;
    removeInlineNode(selection: ArenaSelection, node: ArenaNodeInline): void;
    updateInlineNode(selection: ArenaSelection, node: ArenaNodeInline): void;
    subscribe(event: string, handler: ArenaHandler): void;
    protected debug: boolean;
    protected container: ElementHelper;
    protected editor: ElementHelper;
    protected options: TextarenaOptions;
    protected meta: MetaData;
    protected asm: ArenaServiceManager;
    protected start(): void;
}
declare global {
    interface Window {
        asm: undefined | ArenaServiceManager;
        twttr: undefined | {
            widgets: {
                createTweet: (id: string, el: HTMLElement) => void;
            };
        };
        FB: undefined | {
            init: (opts: {
                xfbml: boolean;
                version: string;
            }) => void;
        };
        instgrm: undefined | {
            Embeds: {
                process: () => void;
            };
        };
    }
}
export default Textarena;
//# sourceMappingURL=Textarena.d.ts.map