import type { int16, uint16 } from "../../types.ts"; import type { Reader } from "../binary/reader.ts"; /** * BASE table - Baseline alignment data * Provides baseline offsets for scripts to align mixed-script text */ /** Baseline tags */ export declare const BaselineTag: { /** Hanging baseline (Devanagari, Tibetan) */ readonly hang: 1751215719; /** Ideographic character face bottom edge (CJK) */ readonly icfb: 1768121954; /** Ideographic character face top edge (CJK) */ readonly icft: 1768121972; /** Ideographic em-box bottom edge (CJK) */ readonly ideo: 1768187247; /** Ideographic em-box top edge */ readonly idtp: 1768191088; /** Mathematical baseline (math layout) */ readonly math: 1835103336; /** Roman baseline (Latin, Greek, Cyrillic) */ readonly romn: 1919905134; }; /** A single baseline value */ export interface BaselineValue { baselineTag: number; coordinate: int16; } /** Min/max extent values */ export interface MinMaxRecord { minCoord: int16 | null; maxCoord: int16 | null; } /** Feature-specific min/max values */ export interface FeatMinMaxRecord { featureTag: number; minCoord: int16 | null; maxCoord: int16 | null; } /** Base values for a script */ export interface BaseValues { defaultBaselineIndex: uint16; baseCoords: int16[]; } /** MinMax values for a language system */ export interface MinMax { minCoord: int16 | null; maxCoord: int16 | null; featMinMaxRecords: FeatMinMaxRecord[]; } /** Base script record */ export interface BaseScriptRecord { scriptTag: number; baseValues: BaseValues | null; defaultMinMax: MinMax | null; baseLangSysRecords: Map; } /** Axis table (horizontal or vertical) */ export interface AxisTable { baseTagList: number[]; baseScriptList: BaseScriptRecord[]; } /** BASE table */ export interface BaseTable { majorVersion: uint16; minorVersion: uint16; horizAxis: AxisTable | null; vertAxis: AxisTable | null; } export declare function parseBase(reader: Reader): BaseTable; /** Get baseline value for a script */ export declare function getBaselineForScript(base: BaseTable, scriptTag: number, baselineTag: number, horizontal?: boolean): int16 | null; /** Get default baseline for a script */ export declare function getDefaultBaseline(base: BaseTable, scriptTag: number, horizontal?: boolean): { tag: number; coordinate: int16; } | null; /** Get min/max extent for a script/language */ export declare function getMinMaxExtent(base: BaseTable, scriptTag: number, languageTag?: number, horizontal?: boolean): MinMaxRecord | null;