/** Platforms that support a normalized emoji token. */ export type EmojiPlatform = "slack" | "discord" | "telegram" | "teams" | "whatsapp"; export interface EmojiEntry { /** Canonical cross-platform name (matches a `KnownEmoji`). */ name: KnownEmoji; /** Unicode token — the native form for Discord and Telegram. */ unicode: string; /** Slack shortcodes (no colons); index 0 is canonical, the rest are aliases. */ slack: string[]; /** Microsoft Teams reaction id used by the Teams API Client. */ teams: string; } /** Starter set; unknown emoji pass through unnormalized as `rawEmoji`. */ export declare const EMOJI_TABLE: readonly [{ readonly name: "thumbs_up"; readonly unicode: "👍"; readonly slack: ["+1", "thumbsup"]; readonly teams: "like"; }, { readonly name: "thumbs_down"; readonly unicode: "👎"; readonly slack: ["-1", "thumbsdown"]; readonly teams: "no"; }, { readonly name: "heart"; readonly unicode: "❤️"; readonly slack: ["heart"]; readonly teams: "heart"; }, { readonly name: "fire"; readonly unicode: "🔥"; readonly slack: ["fire"]; readonly teams: "fire"; }, { readonly name: "eyes"; readonly unicode: "👀"; readonly slack: ["eyes"]; readonly teams: "eyes"; }, { readonly name: "bug"; readonly unicode: "🐛"; readonly slack: ["bug"]; readonly teams: "bug"; }, { readonly name: "check"; readonly unicode: "✅"; readonly slack: ["white_check_mark", "heavy_check_mark"]; readonly teams: "2705_whiteheavycheckmark"; }, { readonly name: "cross"; readonly unicode: "❌"; readonly slack: ["x"]; readonly teams: "274c_crossmark"; }, { readonly name: "tada"; readonly unicode: "🎉"; readonly slack: ["tada"]; readonly teams: "1f389_partypopper"; }, { readonly name: "rocket"; readonly unicode: "🚀"; readonly slack: ["rocket"]; readonly teams: "launch"; }, { readonly name: "warning"; readonly unicode: "⚠️"; readonly slack: ["warning"]; readonly teams: "26a0_warningsign"; }, { readonly name: "question"; readonly unicode: "❓"; readonly slack: ["question"]; readonly teams: "2753_blackquestionmarkornament"; }, { readonly name: "raised_hands"; readonly unicode: "🙌"; readonly slack: ["raised_hands"]; readonly teams: "handsinair"; }, { readonly name: "clap"; readonly unicode: "👏"; readonly slack: ["clap"]; readonly teams: "clappinghands"; }, { readonly name: "pray"; readonly unicode: "🙏"; readonly slack: ["pray"]; readonly teams: "foldedhands"; }, { readonly name: "smile"; readonly unicode: "😄"; readonly slack: ["smile"]; readonly teams: "grinningfacewithsmilingeyes"; }, { readonly name: "thinking"; readonly unicode: "🤔"; readonly slack: ["thinking_face"]; readonly teams: "think"; }, { readonly name: "refresh"; readonly unicode: "🔄"; readonly slack: ["arrows_counterclockwise"]; readonly teams: "1f504_refresh"; }, { readonly name: "laugh"; readonly unicode: "😆"; readonly slack: ["laughing"]; readonly teams: "laugh"; }, { readonly name: "surprised"; readonly unicode: "😮"; readonly slack: ["open_mouth"]; readonly teams: "surprised"; }, { readonly name: "sad"; readonly unicode: "😢"; readonly slack: ["cry"]; readonly teams: "cry"; }, { readonly name: "angry"; readonly unicode: "😠"; readonly slack: ["angry"]; readonly teams: "angry"; }]; export type KnownEmoji = (typeof EMOJI_TABLE)[number]["name"]; /** * Reactions with an explicitly supported Slack and Microsoft Teams mapping. * * Use these values when one handler must work unchanged across both managed * providers. Other {@link EmojiValue} strings are provider-native extensions: * branch on `thread.platform` before using them and expect an explicit provider * error when that provider does not support the value. */ export declare const PORTABLE_REACTIONS: readonly ["thumbs_up", "thumbs_down", "heart", "fire", "eyes", "refresh", "thinking", "tada"]; /** A reaction known to work in both managed Slack and Microsoft Teams. */ export type PortableReaction = (typeof PORTABLE_REACTIONS)[number]; /** * Accepts a known canonical name (with autocomplete) or any string. Unknown * strings pass through as a platform-native token (custom/server emoji). */ export type EmojiValue = KnownEmoji | (string & {}); /** Typed accessor map, e.g. `emoji.thumbs_up`. Each value is its own name. */ export declare const emoji: Record; /** * Resolves any known emoji form — canonical name, Slack shortcode/alias, or * Unicode token — to the platform-native token, or `undefined` if unknown. */ export declare function toPlatformEmoji(value: EmojiValue, platform: EmojiPlatform): string | undefined; /** * Resolve any known emoji form — canonical name, Slack shortcode/alias, or * Unicode token (with or without VS16) — to its canonical name, * platform-agnostically. Unknown tokens (e.g. custom/server emoji) pass through * unchanged. Used to normalize caller-supplied reaction filters so they match * the canonical names ingress produces. */ export declare function toCanonicalEmoji(value: EmojiValue): EmojiValue; /** Platform-native token → canonical name, or `undefined` if unrecognized. */ export declare function normalizeEmoji(token: string, platform: EmojiPlatform): EmojiValue | undefined; //# sourceMappingURL=emoji.d.ts.map