export declare const MAX_ROLE_BATCH_TARGETS = 1000; export interface RoleBatchTarget { larkAppId: string; chatId: string; } export type RoleBatchParseResult = { ok: true; targets: RoleBatchTarget[]; } | { ok: false; error: 'targets_required' | 'too_many_targets' | 'invalid_target'; }; export interface RoleBatchAggregateResult { roles: Array & RoleBatchTarget>; errors: Array<{ larkAppId: string; status: number; error: string; }>; } type ProxyToDaemon = (larkAppId: string, daemonPath: string, init: RequestInit) => Promise; /** Validate and de-duplicate the browser-facing batch request before fan-out. */ export declare function parseRoleBatchTargets(body: unknown): RoleBatchParseResult; /** * Collapse N browser role requests into one request per daemon. Individual * daemon failures are returned alongside successful role rows so one offline * bot does not hide profile matches for every other bot. */ export declare function aggregateRoleBatch(targets: RoleBatchTarget[], proxyToDaemon: ProxyToDaemon): Promise; export {}; //# sourceMappingURL=roles-batch.d.ts.map