// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

/**
 * One row in the chat panel's session list — a top-level DM message
 * that has (or could have) a thread underneath. Sessions correspond
 * 1:1 to threads in Slack: posting a top-level message starts a new
 * session, and bot replies live inside that thread (`thread_ts`).
 *
 * Returned newest-first. The preview text is truncated server-side so
 * the UI doesn't have to. `latest_ts` is what we use to render
 * "2 min ago" and to drive future polling cadence.
 */
export type SlackSession = { 
/**
 * `thread_ts` of the top-level message. Doubles as the session's
 * stable ID — also equal to the parent message's own `ts` in
 * Slack's data model.
 */
thread_ts: string, 
/**
 * Timestamp of the most recent activity on the thread (the
 * parent's own `ts` if there are no replies yet, otherwise the
 * last reply's `ts`). Drives "2 min ago" and the
 * future cadence ladder.
 */
latest_ts: string, 
/**
 * Single-line, whitespace-collapsed body of the parent message,
 * capped at `moon_slack::PREVIEW_MAX_CHARS` (transport safety
 * only — the panel handles visible-width truncation through CSS
 * `line-clamp: 2` *after* it has flattened mrkdwn tokens to
 * plain text). Empty if the parent is image-only / file-only
 * (Slack returns no text in that case).
 */
preview: string, 
/**
 * Number of replies (excluding the parent). 0 means "fresh
 * session, bot hasn't replied yet".
 */
reply_count: number, 
/**
 * Slack user ID who posted the parent. Usually us, but can be
 * the bot (e.g. an automated daily summary). Used by the panel
 * to render a tiny "you" / bot label on each session row.
 */
user_id: string | null, };
