export interface ScreenedCandidate { id: string; query: string; relevant: string[]; idfOverlap: number; maxContiguousRun: number; band: 'low' | 'mid' | 'high'; accepted: boolean; reason?: string; } export interface ScreenReport { corpusHash: string; total: number; accepted: number; rejected: number; bands: { low: number; mid: number; high: number; }; candidates: ScreenedCandidate[]; } /** * @param bandCuts overlap thresholds; defaults match the v1 TEST terciles so a * candidate is judged against the distribution we are trying * to move, not against the one it would itself create. */ export declare function screenCandidates(repoRootIn: string, candidates: Array<{ id: string; query: string; relevant: string[]; }>, bandCuts?: { low: number; high: number; }): Promise; //# sourceMappingURL=harness-screen.d.ts.map