import type { ReviewerProviderConfig } from './reviewer-config.js'; export type SelectionMode = 'round-robin' | 'hash' | 'random'; export type SelectionResult = { provider: ReviewerProviderConfig; index: number; /** Monotonic call counter for `round-robin` (1-based). */ callNumber: number; }; export type RoundRobinState = { mode: 'round-robin'; cursor: number; }; export type SelectionState = RoundRobinState; export declare function initialState(): SelectionState; /** Round-robin: cycles across the provider array across calls. */ export declare function selectRoundRobin(providers: ReadonlyArray, state: SelectionState, rid: string): { result: SelectionResult; nextState: SelectionState; }; /** Hash(rid): stable, deterministic; same rid always yields same provider. */ export declare function selectHash(providers: ReadonlyArray, rid: string): SelectionResult; /** Random: uniform sample; supports a seeded RNG for testability. */ export declare function selectRandom(providers: ReadonlyArray, rid: string, rng?: () => number): SelectionResult; export declare function selectByMode(mode: SelectionMode, providers: ReadonlyArray, rid: string, state: SelectionState, rng?: () => number): { result: SelectionResult; nextState: SelectionState; };