components.d.cts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { EmojiComponentType } from '../data.cjs';
  2. import { EmojiTestDataItem, EmojiTestData } from './parse.cjs';
  3. interface EmojiTestDataComponentsMap {
  4. converted: Map<number, string>;
  5. items: Map<string | number, EmojiTestDataItem>;
  6. names: Map<string | number, string>;
  7. types: Record<string, EmojiComponentType>;
  8. keywords: Record<string, string>;
  9. }
  10. /**
  11. * Map components from test data
  12. */
  13. declare function mapEmojiTestDataComponents(testSequences: EmojiTestData): EmojiTestDataComponentsMap;
  14. /**
  15. * Sequence with components
  16. */
  17. type EmojiSequenceWithComponents = (EmojiComponentType | number)[];
  18. /**
  19. * Convert to string
  20. */
  21. declare function emojiSequenceWithComponentsToString(sequence: EmojiSequenceWithComponents): string;
  22. /**
  23. * Entry in sequence
  24. */
  25. interface EmojiSequenceComponentEntry {
  26. index: number;
  27. type: EmojiComponentType;
  28. }
  29. /**
  30. * Find variations in sequence
  31. */
  32. declare function findEmojiComponentsInSequence(sequence: number[]): EmojiSequenceComponentEntry[];
  33. /**
  34. * Component values
  35. */
  36. type EmojiSequenceComponentValues = Partial<Record<EmojiComponentType, number[]>>;
  37. /**
  38. * Replace components in sequence
  39. */
  40. declare function replaceEmojiComponentsInCombinedSequence(sequence: EmojiSequenceWithComponents, values: EmojiSequenceComponentValues): number[];
  41. export { type EmojiSequenceComponentEntry, type EmojiSequenceComponentValues, type EmojiSequenceWithComponents, type EmojiTestDataComponentsMap, emojiSequenceWithComponentsToString, findEmojiComponentsInSequence, mapEmojiTestDataComponents, replaceEmojiComponentsInCombinedSequence };