/** * Versioned Slack source-thread key encoding. * * Format: `slack:v1:` where the array is: * `[installationKind, installationId, contextTeamId, conversationId, mode, groupingId]` * * Opaque provider IDs are never parsed with delimiter assumptions. */ export type SourceThreadMode = "thread" | "conversation" | "message"; export type InstallationKind = "team" | "enterprise"; export interface SlackSourceThreadParts { installationKind: InstallationKind; installationId: string; contextTeamId: string; conversationId: string; mode: SourceThreadMode; groupingId: string; } /** * Encode a Slack source thread key. Array order is the canonical serialization; * both runtimes share byte-level fixtures over this shape. */ export declare function encodeSlackSourceThreadKey(parts: SlackSourceThreadParts): string; /** Decode a `slack:v1:` source thread key, or return `undefined` if malformed. */ export declare function decodeSlackSourceThreadKey(key: string): SlackSourceThreadParts | undefined; /** * Resolve the MDA grouping id for a Slack conversation mapping mode. * * - `"thread"`: parent `thread_ts`, or the message's own `ts` for a new thread * - `"conversation"`: constant `root` (conversation id is a separate segment) * - `"message"`: message `ts` */ export declare function slackGroupingId(mode: SourceThreadMode, messageTs: string, threadTs?: string): string; //# sourceMappingURL=source-thread.d.ts.map