import type { ChatBotMember } from '../im/lark/client.js';
export type BotInfoEntryForList = {
    larkAppId: string;
    botOpenId: string | null;
    botName: string | null;
    cliId: string;
};
export type BotListOutputEntry = {
    /** Lark display name in the current chat. Good for humans, not stable for workflows. */
    name: string;
    openId: string;
    isSelf: boolean;
    source: 'configured' | 'introduce';
    /** Stable bot id to use in workflow `subagent.bot` fields. Empty for external observed bots. */
    larkAppId: string;
    /** Alias for workflow authors. Equal to larkAppId when locally configured. */
    workflowBot: string | null;
    /** Short capability label (team-level), for picking who to hand off to. */
    capability: string | null;
    /** Whether this bot has a team-level role registered. */
    hasTeamRole: boolean;
    /** Whether YOU (the listing bot) can reliably @-mention it from here. */
    mentionable: boolean;
    /** How the @-mention handle was resolved. */
    mentionSource: 'cross-ref' | 'self' | 'observed' | 'fallback';
};
export declare function formatChatBotsForCli(chatBots: ChatBotMember[], currentLarkAppId: string): BotListOutputEntry[];
export declare function formatBotInfoEntriesForCli(botEntries: BotInfoEntryForList[], currentLarkAppId: string): BotListOutputEntry[];
//# sourceMappingURL=bots-list-output.d.ts.map