import { NonConstructiable } from '../foundation'; import { CrossPlatformCanvasElement, CrossPlatformOffscreenCanvas } from '../platform'; export interface FontMetrics { ascent: number; descent: number; fontSize: number; cssFontProp: string; } type MeasureOptions = { context: CanvasFillStrokeStyles & CanvasRect & CanvasTextDrawingStyles & CanvasText & CanvasImageData; canvas: CrossPlatformCanvasElement | CrossPlatformOffscreenCanvas; metricsString: string; baselineSymbol: string; baselineMultiplier: number; heightMultiplier: number; }; export declare class FontMetrics extends NonConstructiable { static readonly HEIGHT_MULTIPLIER = 2; private static _defaultMeasureOptions?; static get defaultMeasureOptions(): MeasureOptions; /** * 获得字体的 ascent 和 descent 等信息 * * 由于字体的选择是逐字进行的,也就是说即使某个字符周围都在某个字体中可以显示,但该字符在当前的字体文件中没有适合的图形,那么会继续尝试列表中靠后的字体 * * 所以含有多个 font-family 时,测量结果可能不准确 * * @param cssFontProp CSS 的 font 属性 */ static measure(cssFontProp: string, options?: Partial): FontMetrics; static measureWidth(text: string, cssFontProp: string, cache: Record): number; } export {};