export interface TeamBotMatch { larkAppId: string; botName: string; /** 来源标识(歧义提示展示用):platform: | federation:/ | [/] */ source: string; } export type Fetcher = (url: string, init?: { headers?: Record; signal?: AbortSignal; }) => Promise<{ ok: boolean; status: number; json: () => Promise; }>; /** 本地两源的全部团队 bot(平台团队同步名册 + 本机托管的联邦团队名册),纯文件读。 */ export declare function readLocalTeamBotDirectory(dataDir: string): TeamBotMatch[]; /** 远端源:本机作为 spoke 加入的每个 hub,拉 /api/federation/roster。单 hub 失败不拖垮整体。 */ export declare function fetchRemoteHubBotDirectory(dataDir: string, opts?: { fetcher?: Fetcher; timeoutMs?: number; }): Promise; /** 是否有任何团队名册源可读(没有时 /invite 直接走 unresolved,不花 HTTP)。 */ export declare function hasAnyTeamDirectorySource(dataDir: string): boolean; /** 三源合并的完整目录:本地两源 + 每个 membership hub。按 appId 去重,保留先出现的来源标签。 */ export declare function fetchTeamBotDirectory(dataDir: string, opts?: { fetcher?: Fetcher; timeoutMs?: number; }): Promise; //# sourceMappingURL=team-bot-directory.d.ts.map