import type { GlyphId, int16, uint16 } from "../../types.ts"; import type { Reader } from "../binary/reader.ts"; /** * Legacy kern table for kerning pairs * Used when GPOS kerning is not available */ export interface KernTable { version: number; subtables: KernSubtable[]; } export type KernSubtable = KernFormat0 | KernFormat2; /** * Format 0: Ordered list of kerning pairs */ export interface KernFormat0 { format: 0; coverage: KernCoverage; pairs: Map; } /** * Format 2: Class-based kerning (two-dimensional array) */ export interface KernFormat2 { format: 2; coverage: KernCoverage; rowWidth: uint16; leftClassTable: Map; rightClassTable: Map; kerningValues: int16[][]; } export interface KernCoverage { horizontal: boolean; minimum: boolean; crossStream: boolean; override: boolean; } /** * Parse kern table */ export declare function parseKern(reader: Reader): KernTable; /** * Get kerning value from kern table */ export declare function getKernValue(kern: KernTable, left: GlyphId, right: GlyphId): number;