import { HTMLElement, TextNode } from './dom.js';
import { DeclaredPlainStyle } from './cascade.js';
import { BlockContainer } from './flow.js';
import { Canvas, CanvasRenderingContext2D } from './paint-canvas.js';
export type { BlockContainer, DeclaredPlainStyle };
export declare function getRootComputedStyle(style?: DeclaredPlainStyle): import("./cascade.js").ComputedPlainStyle;
export { registerFont, unregisterFont } from './font.js';
export declare function generate(rootElement: HTMLElement): BlockContainer;
export declare function layout(root: BlockContainer, width?: number, height?: number): void;
export declare function paintToHtml(root: BlockContainer): string;
export { eachRegisteredFont } from './font.js';
export declare function paintToCanvas(root: BlockContainer, ctx: CanvasRenderingContext2D): void;
export declare function renderToCanvasContext(rootElement: HTMLElement, ctx: CanvasRenderingContext2D, width: number, height: number): void;
export declare function renderToCanvas(rootElement: HTMLElement, canvas: Canvas, density?: number): void;
type Node = HTMLElement | TextNode;
type Child = Node | string;
type HsAttrs = {
style?: DeclaredPlainStyle;
attrs?: {
[k: string]: string;
};
};
export declare function dom(el: HTMLElement | HTMLElement[] | string, style?: DeclaredPlainStyle): HTMLElement;
export declare function h(tagName: string, attrs: HsAttrs): HTMLElement;
export declare function h(tagName: string, children: Child[]): HTMLElement;
export declare function h(tagName: string, text: string): HTMLElement;
export declare function h(tagName: string, attrs: HsAttrs, children: Child[] | string): HTMLElement;
export declare function staticLayoutContribution(box: BlockContainer): number;