import { BaseChannel } from './index'; /** * Slack Channel — v0.8.0 * Slack Bot with Socket Mode / Events API support, threads, and slash commands. */ export interface SlackChannelConfig { /** Bot token (xoxb-...) */ botToken: string; /** App-level token for Socket Mode (xapp-...) */ appToken?: string; /** Signing secret for Events API verification */ signingSecret?: string; /** Use Socket Mode (true) or Events API (false) */ socketMode?: boolean; /** Port for Events API webhook server (default: 3001) */ port?: number; /** Slash commands to register */ slashCommands?: SlashCommandConfig[]; } export interface SlashCommandConfig { command: string; description: string; handler?: (payload: SlashCommandPayload) => Promise; } export interface SlashCommandPayload { command: string; text: string; userId: string; channelId: string; triggerId: string; } export interface SlackMessageEvent { type: string; channel: string; user: string; text: string; ts: string; threadTs?: string; botId?: string; } export declare class SlackChannel extends BaseChannel { type: string; private config; private running; private slashHandlers; constructor(config: SlackChannelConfig); start(): Promise; stop(): Promise; /** Start Socket Mode connection */ private startSocketMode; /** Start Events API HTTP server */ private startEventsAPI; /** Handle incoming Slack message */ handleMessage(event: SlackMessageEvent): Promise; /** Handle slash command */ handleSlashCommand(payload: SlashCommandPayload): Promise; /** Convert Slack event to Message */ private slackToMessage; /** Send a message to a Slack channel */ sendMessage(channel: string, text: string, threadTs?: string): Promise; } //# sourceMappingURL=slack.d.ts.map