type Attrs = Record; export declare class Element { tag: string; attrs: Attrs; children: (Element | string)[]; constructor(tag: string, attrs?: Attrs, children?: (Element | string)[]); attr(key: string, value?: string | number | undefined): this; fill(color: string, opacity?: number): this; stroke(color: string, width: number, dasharray?: string): this; add(child?: Element | string | undefined): this; toString(): string; private leafBounds; private rotatedBounds; bounds(): Box | undefined; } export declare function Group(): Element; export declare function Text(content: string, attrs?: Attrs): Element; export declare function Shape(shape: "square" | "circle" | "none", cx: number, cy: number, size: number): Element | undefined; declare class Box { minX: number; minY: number; maxX: number; maxY: number; constructor(minX: number, minY: number, maxX: number, maxY: number); merge(other?: Box | undefined): Box; rotate(angle: number, cx: number, cy: number): Box; } export declare class Document { private root; private defsEl; private maskCounter; private idPrefix; constructor(idPrefix?: string); add(child: Element): void; createMask(): { id: string; element: Element; }; computeBounds(): Box | undefined; setViewBox(padding: number): void; get viewBoxAttr(): string | undefined; innerContent(): string; serialize(): string; } export {};