import { Nilable } from "./lang.js"; export declare type AnyNode = AnySyncNode | AnyAsyncNode; export declare type AnyAsyncNode = Promise; export declare type AnySyncNode = TextNode | Elem | Frag; export declare class TextNode extends String { } export declare function F(children: AnyNode[]): Frag; export declare class Frag { #private; constructor(); get children(): Nilable; withText(text: string): this; addText(text: string): void; maybeWithChildren(nodes?: Nilable): this; withChildren(nodes: AnyNode[]): this; withChild(node: AnyNode): this; addChild(node: AnyNode): void; } export declare function E(tagName: string, attrs: ElemAttrs, children?: Nilable): Elem; export declare type ElemAttrs = Record; export declare class Elem extends Frag { #private; constructor(tagName: string); get tagName(): string; get attrs(): Record; withAttrs(attrs: Record): Elem; withAttr(name: string, value: unknown): Elem; addAttr(name: string, value: unknown): void; addChild(node: AnySyncNode): void; }