import type { PrEntry } from './types.js'; interface DiffSize { additions: number; deletions: number; } export declare function riskScore(entry: PrEntry, info: DiffSize): number; export interface ComposeOpts { /** pr -> changed files. A pr mapped to (or defaulting to) null has an UNKNOWN * file set and conservatively conflicts with everything (solo batch only). * Omit the map entirely to disable conflict partitioning (legacy behavior). */ files?: Map; /** minimatch globs (dot:true); a PR touching a zone is only ever batched solo. */ overlapZones?: string[]; } export declare function touchesOverlapZone(files: string[], zones: string[]): boolean; /** D13: greedy conflict-aware batch composition, preserving low-risk-first * order. The lowest-risk PR anchors the batch; each later PR joins only if its * file set is known and disjoint from every member so far. Skipped PRs stay * QUEUED for a later cycle — overlapping PRs NEVER share a batch (bisection * cannot separate entangled diffs, and a mid-batch merge conflict would wedge * the candidate). */ export declare function composeBatch(queued: PrEntry[], infos: Map, cap: number, opts?: ComposeOpts): number[]; export declare function splitBatch(members: number[]): [number[], number[]]; export {}; //# sourceMappingURL=batch.d.ts.map