import type { AgentConfig } from '../../shared/agent-config.js'; import type { AgentMessageRecord } from '../../shared/messages.js'; import { type FeishuChatInfo, type FeishuUserBasicInfo } from '../feishu/client.js'; import { type SubscriptionRecord } from '../inbox/subscription.service.js'; import { type SlackConversationInfo, type SlackUserInfo } from '../slack/workspace-directory.service.js'; export interface SourcedText { source: 'agent_config' | 'platform'; text: string; } export type WhoisResult = { handle?: string; id: string; kind: 'agent' | 'bot' | 'human'; local: boolean; name: string; platform: 'slack'; role?: SourcedText; } | { id: string; isMember?: boolean; kind: 'channel' | 'dm' | 'mpim'; memberCount?: number; name?: string; platform: 'slack'; topic?: SourcedText; } | { id: string; kind: 'agent' | 'user'; local: boolean; name?: string; platform: 'feishu'; role?: SourcedText; } | { id: string; kind: 'chat' | 'dm'; name?: string; platform: 'feishu'; }; export interface PlaceRow { handle?: string; id: string; kind: 'channel' | 'dm'; label?: string; lastDeliveredAt?: string; muted: boolean; platform: 'slack' | 'feishu'; topic?: SourcedText; } export interface PlacesResult { feishuConnected: boolean; rows: PlaceRow[]; slackConnected: boolean; } export interface SlackOrientationAdapter { getConversationById(id: string): Promise; getConversationByName(name: string): Promise; getMemberConversations(): Promise; getUserById(id: string): Promise; getUsersByHandle(handle: string): Promise; } export interface FeishuOrientationAdapter { getChat(chatId: string): Promise; getUser(openId: string): Promise; } export interface OrientationDeps { feishuAdapterForAgent?(agent: AgentConfig): FeishuOrientationAdapter | undefined; getAgentConfig?(agentId: string): Promise; listAgentConfigs?(): Promise; listMessages?(agentId: string, input: { limit: number; }): Promise; listSubscriptions?(agentId: string): Promise; slackAdapterForAgent?(agent: AgentConfig): SlackOrientationAdapter | undefined; } export declare function whoisForAgent(input: { agentId: string; deps?: OrientationDeps; target: string; }): Promise; export declare function placesForAgent(input: { agentId: string; deps?: OrientationDeps; }): Promise; export declare function formatWhois(result: WhoisResult): string; export declare function formatPlaces(result: PlacesResult, options?: { all?: boolean; }): string; export declare function composePlaceRows(input: { messages: AgentMessageRecord[]; seeds: Array & { muted?: boolean; }>; subscriptions: SubscriptionRecord[]; }): PlaceRow[]; //# sourceMappingURL=orientation.d.ts.map