-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathindex.d.cts
executable file
·45 lines (40 loc) · 1.53 KB
/
index.d.cts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
export function ens_normalize(name: string): string;
export function ens_normalize_fragment(frag: string, decompose?: boolean): string;
export function ens_beautify(name: string): string;
export function ens_emoji(): number[][];
export function should_escape(cp: number): boolean;
export function is_combining_mark(cp: number, nsm?: boolean): boolean;
export function safe_str_from_cps(cps: number[], max?: number, quoter?: (cp: number) => string): string;
export function nfd(cps: number[]): number[];
export function nfc(cps: number[]): number[];
interface Label {
input: number[];
offset: number;
error?: Error;
tokens?: number[][];
output?: number[];
emoji?: boolean;
type?: string;
}
export function ens_split(name: string, preserve_emoji?: boolean): Label[];
interface StopToken { type: 'stop'; }
interface DisallowedToken { type: 'disallowed'; cp: number; }
interface IgnoredToken { type: 'ignored'; cp: number; }
interface ValidToken { type: 'valid'; cps: number[]; }
interface MappedToken { type: 'mapped'; cp: number; cps: number[]; }
type TextToken = DisallowedToken | IgnoredToken | ValidToken | MappedToken;
interface EmojiToken {
type: 'emoji';
input: number[];
cps: number[];
emoji: number[];
}
interface NFCToken {
type: 'nfc';
input: number[];
tokens0: TextToken[];
cps: number[];
tokens: TextToken[];
}
type Token = TextToken | EmojiToken | NFCToken | StopToken;
export function ens_tokenize(name: string, options?: {nf?: boolean}): Token[];