import type { TextFontFaceRequest } from './richText.js'; export type TextFontFaceResult = { readonly status: 'ready'; readonly faceId: string; readonly family: string; readonly weight: number; readonly style: 'normal' | 'italic'; readonly sample: string; } | { readonly status: 'unavailable'; readonly code: string; readonly message: string; } | { readonly status: 'failed'; readonly code: string; readonly message: string; }; /** The provider explicitly attests to the exact face and sample coverage in this environment. */ export interface TextFontFaceResolver { readonly environmentId: string; resolve(request: TextFontFaceRequest, context: { readonly signal: AbortSignal; }): Promise; } export interface PreparedTextFont { readonly request: TextFontFaceRequest; readonly result: TextFontFaceResult; } export interface TextFontPreparationReport { readonly environmentId: string; readonly status: 'ready' | 'unavailable' | 'failed'; readonly fonts: readonly PreparedTextFont[]; } export declare function textFontRequestKey(request: TextFontFaceRequest): string; /** Invalid provider attestations fail closed; a fallback or a different sample is not a ready face. */ export declare function validateTextFontFaceResult(request: TextFontFaceRequest, result: TextFontFaceResult): TextFontFaceResult;