import type { AsciiProfile } from './types.js'; /** * Derive a profile restricted to `characters` from an already-built profile — * compiled or runtime — preserving each glyph's raster data exactly (mask, * coverage, atlas tile). Matching against the subset behaves identically to a * profile compiled with that charset: glyph ids follow the given character * order, so all id-order tie-breaks carry over. * * shape6 vectors are carried; a shape6 LUT is dropped (its entries are argmins * over the parent charset), so shape6 matching falls back to the brute-force * 6D path — cheap at subset sizes. * * Chromatic samples and the RGBA atlas are carried too, which is what makes a * palette narrowable at runtime: chromatic-v1 searches every glyph it is given, * so removing glyphs is the only way to stop it reaching for them. * * A string is segmented by greedy longest match against the profile's own * glyph strings, so multi-code-point glyphs — VS16 emoji, ZWJ sequences — * select correctly. The profile defines what a character is, not Unicode * tables, which keeps the segmentation identical on every engine. Pass an * array to select exact strings. Duplicate glyphs are an error, and so is any * part of the input the profile has no glyph for. */ export declare function subsetProfile(profile: AsciiProfile, characters: string | readonly string[]): AsciiProfile;