import type { PlatformAdapter, Conversation, Message } from "../index.js"; /** Slack client.boot response (trimmed to what we use) */ export interface SlackBootResponse { ok: boolean; self: { id: string; name: string; }; team: { id: string; name: string; domain: string; }; channels: SlackRawChannel[]; /** User objects included in boot response */ users?: SlackRawUser[]; /** IMs (direct messages) */ ims?: SlackRawIM[]; } export interface SlackRawChannel { id: string; name: string; name_normalized: string; is_channel: boolean; is_group: boolean; is_im: boolean; is_mpim: boolean; is_private: boolean; is_archived: boolean; is_general: boolean; /** Number of members (channels only) */ num_members?: number; /** Topic text */ topic?: { value: string; }; /** Purpose text */ purpose?: { value: string; }; /** Timestamp of last update */ updated: number; /** Unread count */ unread_count?: number; unread_count_display?: number; /** Latest message */ latest?: { text?: string; ts?: string; user?: string; type?: string; subtype?: string; }; /** For IMs — the other user's ID */ user?: string; /** For multi-party DMs — member user IDs */ members?: string[]; /** Priority sort weight */ priority?: number; } export interface SlackRawUser { id: string; name: string; real_name?: string; display_name?: string; profile?: { real_name?: string; display_name?: string; image_48?: string; image_72?: string; email?: string; }; is_bot?: boolean; deleted?: boolean; } export interface SlackRawIM { id: string; user: string; is_user_deleted?: boolean; } export interface SlackConversationsHistoryResponse { ok: boolean; messages: SlackRawMessage[]; has_more: boolean; response_metadata?: { next_cursor?: string; }; } export interface SlackRawMessage { type: string; subtype?: string; user?: string; text: string; ts: string; thread_ts?: string; reply_count?: number; reactions?: Array<{ name: string; count: number; users: string[]; }>; files?: Array<{ name: string; url_private: string; mimetype: string; filetype: string; }>; } /** Build a user lookup map from boot response */ export declare function buildUserMap(boot: SlackBootResponse): Record; /** Get display name for a Slack user */ export declare function resolveUserName(user: SlackRawUser): string; /** Determine conversation type from Slack channel flags */ export declare function resolveConversationType(channel: SlackRawChannel): "dm" | "group_dm" | "channel"; /** Normalize a Slack channel + user map into a Conversation */ export declare function normalizeConversation(channel: SlackRawChannel, userMap: Record, teamId: string, selfId: string): Conversation; /** Normalize a Slack message into a Message */ export declare function normalizeMessage(msg: SlackRawMessage, userMap: Record): Message; export declare const slackAdapter: PlatformAdapter; //# sourceMappingURL=slack.d.ts.map