import { IOElement } from '../client/IOElement';
import { System } from '../system';
import { Dict } from '../types/Dict';
export declare function appendChild<T extends Node>(node: Node, newChild: T): T;
export declare function insertBefore<T extends Node>(node: Node, newChild: T, refChild: Node | null): T;
export declare function insertBeforeAt<T extends Node>(node: Node, newChild: T, at: number): T;
export declare function removeChild<T extends Node>(node: Node, oldChild: T): T;
export declare function prepend<T extends IOElement>(node: IOElement, newChild: T): void;
export declare function removeChildren(element: Element): void;
export declare function insertAt(node: Node, newChild: Node, at: number): Node;
export type Tag = {
    name: string;
    attr: Dict<string>;
    children: Tag[];
    textContent?: string;
};
export declare function elementToJson(element: HTMLElement): Tag;
export declare function isElementFocusable(system: System, element: Element): boolean;
