export interface FontSpec { font_family: string; font_size: number; font_style: string; font_variant: string; font_weight: string; font_stretch: string; line_height: number; } export interface TextLineMetrics { readonly text: string; readonly width: number; readonly ascent: number; readonly descent: number; readonly height: number; readonly source: `canvas` | `fallback`; } type TextWidthMeasure = (text: string, font: Readonly) => { readonly width: number; }; interface FontReadiness { readonly ready: PromiseLike; } export declare const DEFAULT_FONT_SPEC: Readonly; export declare function resolve_font_size_css(value: string | undefined, parent_font_size?: number): number; export declare function resolve_font_spec(element: HTMLElement | SVGElement | null | undefined, fallback?: Readonly): FontSpec; export declare function font_spec_to_css(font: Readonly): string; export declare function measure_text_line(text: string, font?: Readonly): TextLineMetrics; export declare function wrap_text_paragraph(paragraph: string, available_width: number, font: Readonly, measure?: TextWidthMeasure, preserve_empty_line?: boolean): string[]; export declare function clear_text_metrics_cache(): number; export declare const get_text_metrics_revision: () => number; export declare function invalidate_text_metrics_after_fonts_ready(font_readiness?: FontReadiness | undefined): Promise; export {};