import { TreeArena } from '../interfaces/Arena';
import ArenaAttributes from '../interfaces/ArenaAttributes';
import ArenaCursorAncestor from '../interfaces/ArenaCursorAncestor';
import { ParentArenaNode } from '../interfaces/ArenaNode';
export default abstract class AbstractNode<TArena extends TreeArena> {
    readonly arena: TArena;
    readonly id: string;
    readonly hasParent: boolean;
    readonly hasChildren: boolean;
    readonly hasText: boolean;
    readonly inline: boolean;
    readonly single: boolean;
    protected _parent: ParentArenaNode | undefined;
    get parent(): ParentArenaNode;
    constructor(arena: TArena, id: string, attributes?: ArenaAttributes);
    getId(): string;
    getIndex(): number;
    isFirstChild(): boolean;
    isLastChild(): boolean;
    getGlobalIndex(): string;
    getOpenTag(): string;
    getCloseTag(): string;
    getParent(): ArenaCursorAncestor;
    setParent(parent: ParentArenaNode): void;
    getUnprotectedParent(): ArenaCursorAncestor | undefined;
    remove(): ArenaCursorAncestor;
    setAttribute(name: string, value: string | boolean | number): void;
    setAttributes(attrs: ArenaAttributes): void;
    getAttribute(name: string): string | boolean | number;
    protected attributes: ArenaAttributes;
}
//# sourceMappingURL=AbstractNode.d.ts.map