import { createSlackClient, type SlackEvent } from '../../infra/slack/client.js'; import { createSlackConversationPort } from '../manager/slackConversationPort.js'; import type { ConversationInput } from '../manager/conversationPort.js'; import { createDirectorSlackConversationPort } from '../director/slackConversationPort.js'; import type { DirectorNotificationDelivery } from '../director/notificationDelivery.js'; import type { GlobalConfig } from '../../core/models/config-types.js'; import type { Language } from '../../core/models/types.js'; type SlackPort = ReturnType; interface RepositoryPort { allowedUserIds: readonly string[]; port: Pick; } interface DirectorPort { channelId: string; allowedUserIds: readonly string[]; port: ReturnType; } export declare function loadSlackRepositoryConfig(repositoryDirectory: string): { language: Language; channelId: string; allowedUserIds: string[]; repositoryDirectory: string; } | undefined; export declare function dispatchSlackEvent(event: SlackEvent, ports: ReadonlyMap, director?: DirectorPort): Promise; export declare function createDaemonSlackPorts(options: { projects: readonly string[]; configDirectory: string; input: ConversationInput; tokens: { appToken: string; botToken: string; } | undefined; clientFactory?: typeof createSlackClient; signal?: AbortSignal; director?: { slack: NonNullable['slack']; language: Language; }; }): Promise<{ readonly listening: boolean; notifications: DirectorNotificationDelivery; pollInquiries: () => Promise; stopAccepting: () => void; close: () => Promise; }>; export {}; //# sourceMappingURL=slackPorts.d.ts.map