/** * Slack Channel Adapter * * Uses Slack Bolt framework or Events API via Socket Mode */ import { BaseChannelAdapter, type ChannelConfig, type ChannelProfile } from "./base.js"; import type { OutboundMessage } from "../types/index.js"; /** Slack channel configuration */ export interface SlackConfig { /** Bot token (xoxb-...) */ botToken: string; /** App token for Socket Mode (xapp-...) */ appToken?: string; /** Signing secret for HTTP mode */ signingSecret?: string; /** Use Socket Mode (default: true) */ socketMode?: boolean; /** Port for HTTP mode */ port?: number; } /** Slack adapter using Events API */ declare class SlackAdapter extends BaseChannelAdapter { readonly channelType = "slack"; private botToken; private appToken?; private socketMode; private ws?; private reconnectAttempts; private maxReconnectAttempts; private botInfo?; private socketUrl?; constructor(config: ChannelConfig); /** Initialize the adapter */ initialize(): Promise; /** Shutdown the adapter */ shutdown(): Promise; /** Send a message to Slack */ send(message: OutboundMessage): Promise; /** Get channel profile */ getProfile(): Promise; private connectSocketMode; /** Handle Socket Mode message */ private handleSocketMessage; /** Handle Slack event */ private handleEvent; /** Handle event callback */ private handleEventCallback; /** Handle message event */ private handleMessageEvent; /** Handle app mention event */ private handleAppMention; /** Attempt to reconnect */ private attemptReconnect; /** Clean mentions from text */ private cleanMentions; /** Sanitize emoji for Slack */ private sanitizeEmoji; private apiCall; } export { SlackAdapter }; //# sourceMappingURL=slack.d.ts.map