import EventEmitter from "node:events"; interface SlackOptions { token: string; set?: string; } interface User { account: string; nickname: string; } interface SlackMessage { type: string; channel: string; user: string; text: string; } interface SlackEvents { data: [string | [string, any]]; error: [string]; message: [SlackMessage]; } export default class slack extends EventEmitter { private options; private token; private api; private interval; private server; private reconnectAttempts; emit(event: K, ...args: SlackEvents[K]): boolean; on(event: K, listener: (...args: SlackEvents[K]) => void): this; constructor(options: SlackOptions); connect(): Promise; private initializeWebSocket; private handleWebSocketEvents; reconnect(): Promise; getChannel(channelId: string): Promise; getUser(userId: string): Promise; send(channel: string, text: string | string[]): Promise; ping(): Promise; write(json: object): Promise; reply(tmp: SlackMessage): any; private parseData; format(msg: string): string; } export {};