/** * Slack Web API transport for managed channel egress. * * Uses `fetch` against `https://slack.com/api/*` — no Slack SDK dependency. * Credentials stay in process env / constructor args; they never appear on * `runtime.channel`. */ import type { ChannelTransport } from "../runtime.js"; /** Optional override so tests can point at a local mock Slack Web API. */ export declare const SLACK_API_BASE_ENV = "SLACK_API_BASE"; /** Default status string for Slack Assistants `assistant.threads.setStatus`. */ export declare const DEFAULT_ASSISTANT_STATUS = "is thinking\u2026"; /** * Curated rotating loading strings shown by Slack while the indicator is active. * Capped at 10 by Slack's API. */ export declare const DEFAULT_LOADING_MESSAGES: readonly string[]; export interface SlackWebApiTransportOptions { botToken: string; /** Slack Web API base URL (default `https://slack.com/api`). */ apiBase?: string; /** Optional fetch override for tests. */ fetch?: typeof fetch; } export interface SetSlackAssistantStatusOptions { botToken: string; channelId: string; threadTs: string; /** Status text; empty string clears the indicator. */ status?: string; loadingMessages?: readonly string[]; apiBase?: string; fetch?: typeof fetch; } /** * Build a {@link ChannelTransport} backed by Slack `chat.postMessage` / * `chat.update`. */ export declare function createSlackWebApiTransport(options: SlackWebApiTransportOptions): ChannelTransport; /** * Set (or clear) Slack's Assistants thread status indicator. * * Wraps `assistant.threads.setStatus`. Failures are logged and never thrown — * the indicator is a UX nicety, not a correctness requirement. Returns whether * Slack accepted the update. */ export declare function setSlackAssistantStatus(options: SetSlackAssistantStatusOptions): Promise; //# sourceMappingURL=transport.d.ts.map