/**
 * Bot ref resolver for `botmux create-group`. Pure function, no I/O — testable
 * in isolation by passing in mock bot configs + bot-info entries.
 *
 * Resolution order for each ref:
 *   1. Exact `larkAppId` match
 *   2. `botName` from bots-info.json (case-insensitive)
 *   3. `cliId` from bots.json (case-insensitive) — fallback when botName is
 *      unknown (bots-info.json gets populated by daemon at startup)
 *
 * Multiple matches by name → take the first in `botConfigs` order (= bots.json
 * traversal order, the user's deployment intent). Same ref repeated → dedup,
 * keeping first occurrence. Unresolvable ref → reported in `invalid` list.
 */
export interface BotConfigForResolve {
    larkAppId: string;
    cliId: string;
}
export interface BotInfoForResolve {
    larkAppId: string;
    botName: string | null;
}
export interface ResolvedBots {
    /** Resolved larkAppIds in input order, deduped. First element is creator. */
    larkAppIds: string[];
    /** Refs that couldn't be matched to any bot. */
    invalid: string[];
    /** Warnings about ambiguous name → first match picked. */
    ambiguousWarnings: string[];
}
export declare function resolveBotRefs(refs: string[], botConfigs: BotConfigForResolve[], botInfo: BotInfoForResolve[]): ResolvedBots;
//# sourceMappingURL=create-group-resolver.d.ts.map