/** * Smart Batching for Classifier * * Groups nearby candidates together so planning discussions don't get split across batches. */ import type { CandidateMessage } from '../types'; /** * Group candidates by proximity in the original conversation. * Messages with IDs close together are grouped together. * * @param candidates Candidates to group * @param proximityGap Max gap between message IDs to consider them in same group (default: 5) * @returns Array of grouped candidates */ export declare function groupCandidatesByProximity(candidates: readonly CandidateMessage[], proximityGap?: number): readonly CandidateMessage[][]; /** * Create smart batches that respect proximity groups. * * Unlike naive batching (slice every N), this keeps nearby candidates together. * Groups smaller than batchSize are combined when possible. * Groups larger than batchSize are split at natural boundaries. * * @param candidates Candidates to batch * @param batchSize Target batch size * @param proximityGap Max gap between message IDs for same group (default: 5) * @returns Array of batches, each containing grouped candidates */ export declare function createSmartBatches(candidates: readonly CandidateMessage[], batchSize: number, proximityGap?: number): readonly (readonly CandidateMessage[])[]; //# sourceMappingURL=batching.d.ts.map