import type { LiveComponent, PropsWithChildren } from '@use-gpu/live'; import type { Atlas, Tuples, Rectangle } from '@use-gpu/core'; import type { ShaderSource } from '@use-gpu/shader'; import type { FontMetrics, GlyphMetrics } from '@use-gpu/glyph'; import type { Alignment } from '../types.d.cts'; export declare const SDFFontContext: import("@use-gpu/live").LiveContext; export declare const useSDFFontContext: () => SDFFontContextProps; export declare const useNoSDFFontContext: () => void; export type SDFFontContextProps = { __debug: { atlas: Atlas; }; getRadius: () => number; getScale: (size: number) => number; getGlyph: (font: number, id: number, size: number) => CachedGlyph; getTexture: () => ShaderSource; }; export type SDFFontProviderProps = PropsWithChildren<{ width?: number; height?: number; radius?: number; pad?: number; }>; type CachedGlyph = { glyph: GlyphMetrics; mapping: [number, number, number, number]; }; export declare const SDFFontProvider: LiveComponent; export declare const useSDFGlyphData: (layout: Rectangle, font: number[], spans: Tuples<3>, glyphs: Tuples<4>, breaks: Uint32Array, height: FontMetrics, align: Alignment, size?: number, wrap?: number, hint?: "x" | "y" | "xy" | false, monochrome?: boolean) => { id: number; count: number; indices: Uint32Array; layouts: Float32Array; rectangles: Float32Array; uvs: Float32Array; sdf: [number, number, number, number]; }; export declare const emitGlyphSpans: (context: SDFFontContextProps, layout: Rectangle, currentIndex: number, font: number[], spans: Tuples<3>, glyphs: Tuples<4>, breaks: Uint32Array, start: number, end: number, size: number, gap: number, lead: number, hint: "x" | "y" | "xy" | false, monochrome: boolean, emit: (l1: number, t1: number, r1: number, b1: number, l2: number, t2: number, r2: number, b2: number, i: number) => void) => void; export {};