/** * Slack channel adapter. * * Architecture borrowed from NanoClaw (https://github.com/qwibitai/nanoclaw). * Handles all Slack I/O over Socket Mode: receiving messages, sending * responses, busy reactions. Contains zero business logic — that lives in * the pi agent. */ export declare function startSlack(): Promise; export declare function sendResponse(jid: string, text: string, ctx?: { threadTs?: string; }): Promise; /** * Upload local files to the channel as real Slack attachments. Used when the * agent's response references files on the gateway host (a file:// link would * be dead for every Slack recipient). */ export declare function sendFiles(jid: string, filePaths: string[], ctx?: { threadTs?: string; }): Promise; /** * Busy indicator: Slack has no bot typing indicator, so react to the * triggering message instead. No-ops when there is no message ts (scheduler * runs) and never rejects — a missing reactions:write scope must not break * the processing pipeline. */ export declare function setBusy(jid: string, on: boolean, ctx?: { ts?: string; }): Promise; export declare function stopSlack(): void; export declare function getBotTag(): string | undefined;