import { SimpleDocument, Nullable, SimpleElement, SimpleNode, Bounds, Environment, TreeBuilder } from '@glimmer/interfaces';
import { DOMTreeConstruction } from '@glimmer/runtime';

declare class NodeDOMTreeConstruction extends DOMTreeConstruction {
    protected document: SimpleDocument;
    constructor(doc: Nullable<SimpleDocument>);
    protected setupUselessElement(): void;
    insertHTMLBefore(parent: SimpleElement, reference: Nullable<SimpleNode>, html: string): Bounds;
    createElement(tag: string): SimpleElement;
    setAttribute(element: SimpleElement, name: string, value: string): void;
}

declare function serializeBuilder(env: Environment, cursor: {
    element: SimpleElement;
    nextSibling: Nullable<SimpleNode>;
}): TreeBuilder;

export { NodeDOMTreeConstruction, serializeBuilder };
