/** Trigger Server-backed Slack channel authoring surface. */ import type { ChannelManifest } from "../manifest.js"; import { type Channel } from "../../runtime/channel.js"; export type { ChannelManifest } from "../manifest.js"; export interface SlackChannelConfig { /** Your agent's name, used in mentions like `@support-agent`. */ name?: string; /** A short description of what your agent does. */ description?: string; icon?: string; /** The Slack app background as a `#RRGGBB` hex color. */ backgroundColor?: string; triggerOnAllMessages?: boolean; allowBotTriggers?: boolean; } export interface TriggerSlackAppConfig { name?: string; description?: string; icon?: string; backgroundColor?: string; } export interface RequiredTriggerSlackChannelConfig { app: TriggerSlackAppConfig; triggerOnAllMessages: boolean; allowBotTriggers: boolean; } /** Branded Trigger-backed Slack declaration. */ export type SlackChannel = Channel & RequiredTriggerSlackChannelConfig & { kind: "slack"; transport: "trigger_server"; }; /** Declare a Slack channel whose ingress and callbacks use Trigger Server. */ export declare function slackChannel(config?: SlackChannelConfig): SlackChannel; /** Build deploy/runtime requirements for a file-derived channel instance. */ export declare function toSlackRequirements(name: string, definition: RequiredTriggerSlackChannelConfig | SlackChannel): ChannelManifest; export type SlackChannelTrigger = "app_mention" | "direct_message" | "thread_reply"; export type SlackMentionBehavior = "strip" | "preserve"; export type SlackConversationMapping = "thread" | "conversation" | "message"; export interface RequiredSlackChannelConfig { autoReply: boolean; mentionBehavior: SlackMentionBehavior; filters: { includeConversations?: readonly string[]; excludeConversations?: readonly string[]; includeUsers?: readonly string[]; excludeUsers?: readonly string[]; allowSharedConversations: boolean; }; conversation: { appMention: SlackConversationMapping; directMessage: SlackConversationMapping; }; } export { decodeSlackEscaping, normalizeSlackEvent, verifySlackRequest, } from "./normalize.js"; export type { NormalizeSlackEventInput, NormalizeSlackEventResult, SlackInstallationContext, SlackSignatureHeaders, } from "./normalize.js"; export { createSlackWebApiTransport, setSlackAssistantStatus, DEFAULT_ASSISTANT_STATUS, DEFAULT_LOADING_MESSAGES, SLACK_API_BASE_ENV, } from "./transport.js"; export type { SetSlackAssistantStatusOptions, SlackWebApiTransportOptions, } from "./transport.js"; export { handleSlackEventsRequest, stableThreadId, SLACK_SIGNING_SECRET_ENV, SLACK_API_APP_ID_ENV, SLACK_TEAM_ID_ENV, SLACK_BOT_USER_ID_ENV, } from "./http.js"; export type { InvokeIngressAgentInput, InvokeIngressAgentResult, SlackChannelHttpConfig, } from "./http.js"; export { decodeSlackSourceThreadKey, encodeSlackSourceThreadKey, slackGroupingId, } from "./source-thread.js"; export type { InstallationKind, SlackSourceThreadParts, SourceThreadMode, } from "./source-thread.js"; export { slackChannelAdapter } from "./adapter-core.js"; export { slackConfigFromManifest } from "./adapter.js"; //# sourceMappingURL=index.d.ts.map