import { type GlyphRun } from './glyph-run.ts'; import { type GdefTable } from './tables/gdef.ts'; import { type GposTable } from './tables/gpos.ts'; import { type GsubTable } from './tables/gsub.ts'; import { type HmtxTable } from './tables/hmtx.ts'; export type LayoutOptions = { scriptTag?: string; langSysTag?: string; }; export declare class GsubProcessor { private readonly gsubTable; private readonly hmtxTable; private readonly gdefTable; private readonly lookupsCache; private readonly innerLookupCache; constructor(gsubTable: GsubTable, hmtxTable: HmtxTable, gdefTable?: GdefTable); apply(glyphRun: GlyphRun, features: string[], options: LayoutOptions): void; private getFeatureIndexByTag; private applyFeatureByIndex; private readonly applyLookup; private getLookupsByIndex; } export declare class GposProcessor { private readonly gposTable; private readonly gdefTable; private readonly lookupsCache; constructor(gposTable: GposTable, gdefTable?: GdefTable); hasFeature(featureTag: string, options: LayoutOptions): boolean; apply(glyphRun: GlyphRun, features: string[], options: LayoutOptions): Map; private findLangSysTable; private getFeatureIndexByTag; private applyFeatureByIndex; private getLookupsByIndex; } /** * Creates a skip function for a lookup based on its flags and the GDEF * table. Returns undefined when the lookup has no filtering flags set. */ export declare function createSkipFn(lookupFlag: number, markFilteringSet: number | undefined, gdef: GdefTable | undefined): ((glyphId: number) => boolean) | undefined;