/** * The CSS `unicode-range` descriptor: parsing it, and asking what it covers. * * Google Fonts splits a family into subsets — latin, cyrillic, japanese, symbols * — and ships one file per subset, gated by `unicode-range`. Every consumer that * reads a css2 stylesheet has to answer the same question from it: which of * those files is the one that carries the characters I need? An answer that * ignores the ranges picks a file by position, which is how a symbol face * resolves to its Latin subset and draws the box it was fetched to avoid. */ /** An inclusive `[first, last]` codepoint pair. */ export type UnicodeRange = readonly [number, number]; /** * Parse a `unicode-range` value into ranges. Handles `U+XXXX`, `U+XXXX-YYYY` * and the `U+XX??` wildcard; unparseable parts are skipped rather than thrown * on, because one malformed entry must not lose the rest of the descriptor. */ export declare function parseUnicodeRange(rangeStr: string): UnicodeRange[]; /** Is `codePoint` inside any of `ranges`? An EMPTY list covers everything. */ export declare function rangesCover(ranges: ReadonlyArray, codePoint: number): boolean; /** Does any codepoint in the set fall inside any of the ranges? */ export declare function unicodeRangeIntersects(ranges: ReadonlyArray, codePoints: Iterable): boolean;