import type { SlackThread, SlackThreadMessage } from "#public/channels/slack/api.js"; /** * Boundary for {@link loadThreadContextMessages}. `"thread-root"` returns all * prior thread messages; `"last-agent-reply"` returns only messages after the * last agent-authored reply; a predicate returns only messages after the last * one it matches. */ export type ThreadContextSince = "thread-root" | "last-agent-reply" | ((message: SlackThreadMessage) => boolean); /** Options for {@link loadThreadContextMessages}. */ export interface LoadThreadContextMessagesOptions { /** * Boundary for returned context messages. Defaults to `"thread-root"`. * * Use `"last-agent-reply"` to include only user/thread messages * since the last agent-authored Slack reply. Pass a predicate * function for custom boundaries, such as "since the last message * that mentioned a particular user". */ readonly since?: ThreadContextSince; } /** * Loads messages that are useful as background context for the current * Slack thread turn. * * Returns an empty array when `message` is the thread root. For thread * replies, refreshes the bound Slack thread and returns its recent * messages before the triggering message, filtered by {@link options}. * Formatting and model-message role choice stay with the caller. */ export declare function loadThreadContextMessages(thread: Pick, message: { readonly threadTs: string; readonly ts: string; }, options?: LoadThreadContextMessagesOptions): Promise;