base.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * Regex in item
  3. */
  4. interface BaseEmojiItemRegex {
  5. type: 'utf16' | 'sequence' | 'set' | 'optional';
  6. regex: string;
  7. group: boolean;
  8. length: number;
  9. }
  10. interface EmojiItemRegexWithNumbers {
  11. numbers?: number[];
  12. }
  13. interface UTF16EmojiItemRegex extends BaseEmojiItemRegex, Required<EmojiItemRegexWithNumbers> {
  14. type: 'utf16';
  15. group: true;
  16. }
  17. type SequenceEmojiItemRegexItem = UTF16EmojiItemRegex | SetEmojiItemRegex | OptionalEmojiItemRegex;
  18. interface SequenceEmojiItemRegex extends BaseEmojiItemRegex, EmojiItemRegexWithNumbers {
  19. type: 'sequence';
  20. items: SequenceEmojiItemRegexItem[];
  21. }
  22. type SetEmojiItemRegexItem = UTF16EmojiItemRegex | SequenceEmojiItemRegex | OptionalEmojiItemRegex;
  23. interface SetEmojiItemRegex extends BaseEmojiItemRegex, EmojiItemRegexWithNumbers {
  24. type: 'set';
  25. sets: SetEmojiItemRegexItem[];
  26. }
  27. type OptionalEmojiItemRegexItem = UTF16EmojiItemRegex | SequenceEmojiItemRegex | SetEmojiItemRegex;
  28. interface OptionalEmojiItemRegex extends BaseEmojiItemRegex {
  29. type: 'optional';
  30. item: OptionalEmojiItemRegexItem;
  31. group: true;
  32. }
  33. type EmojiItemRegex = UTF16EmojiItemRegex | SequenceEmojiItemRegex | SetEmojiItemRegex | OptionalEmojiItemRegex;
  34. /**
  35. * Wrap regex in group
  36. */
  37. declare function wrapRegexInGroup(regex: string): string;
  38. /**
  39. * Update UTF16 item, return regex
  40. */
  41. declare function updateUTF16EmojiRegexItem(item: UTF16EmojiItemRegex): string;
  42. /**
  43. * Create UTF-16 regex
  44. */
  45. declare function createUTF16EmojiRegexItem(numbers: number[]): UTF16EmojiItemRegex;
  46. /**
  47. * Update sequence regex. Does not update group
  48. */
  49. declare function updateSequenceEmojiRegexItem(item: SequenceEmojiItemRegex): string;
  50. /**
  51. * Create sequence regex
  52. */
  53. declare function createSequenceEmojiRegexItem(sequence: EmojiItemRegex[], numbers?: number[]): SequenceEmojiItemRegex;
  54. /**
  55. * Update set regex and group
  56. */
  57. declare function updateSetEmojiRegexItem(item: SetEmojiItemRegex): string;
  58. /**
  59. * Create set regex
  60. */
  61. declare function createSetEmojiRegexItem(set: EmojiItemRegex[]): SetEmojiItemRegex;
  62. /**
  63. * Update optional regex
  64. */
  65. declare function updateOptionalEmojiRegexItem(item: OptionalEmojiItemRegex): string;
  66. /**
  67. * Create optional item
  68. */
  69. declare function createOptionalEmojiRegexItem(item: EmojiItemRegex): OptionalEmojiItemRegex;
  70. /**
  71. * Clone item
  72. */
  73. declare function cloneEmojiRegexItem<T extends BaseEmojiItemRegex>(item: T, shallow?: boolean): T;
  74. export { type EmojiItemRegex, type OptionalEmojiItemRegex, type SequenceEmojiItemRegex, type SetEmojiItemRegex, type SetEmojiItemRegexItem, type UTF16EmojiItemRegex, cloneEmojiRegexItem, createOptionalEmojiRegexItem, createSequenceEmojiRegexItem, createSetEmojiRegexItem, createUTF16EmojiRegexItem, updateOptionalEmojiRegexItem, updateSequenceEmojiRegexItem, updateSetEmojiRegexItem, updateUTF16EmojiRegexItem, wrapRegexInGroup };