import type { Block, KnownBlock, WebClient } from "@slack/web-api"; import type { SlackMediaResult } from "./monitor/media.js"; export type SlackActionClientOpts = { accountId?: string; token?: string; client?: WebClient; }; export type SlackMessageSummary = { ts?: string; text?: string; user?: string; thread_ts?: string; reply_count?: number; reactions?: Array<{ name?: string; count?: number; users?: string[]; }>; /** File attachments on this message. Present when the message has files. */ files?: Array<{ id?: string; name?: string; mimetype?: string; }>; }; export type SlackPin = { type?: string; message?: { ts?: string; text?: string; }; file?: { id?: string; name?: string; }; }; export declare function reactSlackMessage(channelId: string, messageId: string, emoji: string, opts?: SlackActionClientOpts): Promise; export declare function removeSlackReaction(channelId: string, messageId: string, emoji: string, opts?: SlackActionClientOpts): Promise; export declare function removeOwnSlackReactions(channelId: string, messageId: string, opts?: SlackActionClientOpts): Promise; export declare function listSlackReactions(channelId: string, messageId: string, opts?: SlackActionClientOpts): Promise; export declare function sendSlackMessage(to: string, content: string, opts?: SlackActionClientOpts & { mediaUrl?: string; mediaLocalRoots?: readonly string[]; threadTs?: string; blocks?: (Block | KnownBlock)[]; }): Promise; export declare function editSlackMessage(channelId: string, messageId: string, content: string, opts?: SlackActionClientOpts & { blocks?: (Block | KnownBlock)[]; }): Promise; export declare function deleteSlackMessage(channelId: string, messageId: string, opts?: SlackActionClientOpts): Promise; export declare function readSlackMessages(channelId: string, opts?: SlackActionClientOpts & { limit?: number; before?: string; after?: string; threadId?: string; }): Promise<{ messages: SlackMessageSummary[]; hasMore: boolean; }>; export declare function getSlackMemberInfo(userId: string, opts?: SlackActionClientOpts): Promise; export declare function listSlackEmojis(opts?: SlackActionClientOpts): Promise; export declare function pinSlackMessage(channelId: string, messageId: string, opts?: SlackActionClientOpts): Promise; export declare function unpinSlackMessage(channelId: string, messageId: string, opts?: SlackActionClientOpts): Promise; export declare function listSlackPins(channelId: string, opts?: SlackActionClientOpts): Promise; /** * Downloads a Slack file by ID and saves it to the local media store. * Fetches a fresh download URL via files.info to avoid using stale private URLs. * Returns null when the file cannot be found or downloaded. */ export declare function downloadSlackFile(fileId: string, opts: SlackActionClientOpts & { maxBytes: number; channelId?: string; threadId?: string; }): Promise;