index.d.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. interface DisallowedToken {
  2. type: 'disallowed';
  3. cp: number;
  4. }
  5. interface IgnoredToken {
  6. type: 'ignored';
  7. cp: number;
  8. }
  9. interface ValidToken {
  10. type: 'valid';
  11. cps: number[];
  12. }
  13. interface MappedToken {
  14. type: 'mapped';
  15. cp: number;
  16. cps: number[];
  17. }
  18. type TextToken = DisallowedToken | IgnoredToken | ValidToken | MappedToken;
  19. interface EmojiToken {
  20. type: 'emoji';
  21. input: number[];
  22. emoji: number[];
  23. cps: number[];
  24. }
  25. interface NFCToken {
  26. type: 'nfc';
  27. input: number[];
  28. cps: number[];
  29. tokens: TextToken[];
  30. }
  31. interface StopToken {
  32. type: 'stop';
  33. }
  34. type Token = TextToken | EmojiToken | NFCToken | StopToken;
  35. interface Label {
  36. input: number[];
  37. offset: number;
  38. error?: Error;
  39. tokens?: number[][];
  40. output?: number[];
  41. emoji?: boolean;
  42. type?: string;
  43. }
  44. export function ens_normalize(name: string): string;
  45. export function ens_normalize_fragment(frag: string, decompose?: boolean): string;
  46. export function ens_beautify(name: string): string;
  47. export function ens_tokenize(name: string, options?: {nf?: boolean}): Token[];
  48. export function ens_split(name: string, preserve_emoji?: boolean): Label[];
  49. export function ens_emoji(): number[][];
  50. export function should_escape(cp: number): boolean;
  51. export function is_combining_mark(cp: number): boolean;
  52. export function safe_str_from_cps(cps: number[]): string;
  53. export function nfd(cps: number[]): number[];
  54. export function nfc(cps: number[]): number[];