import type { AutoRoutingCandidate, AutoRoutingConfig, RoutingTier } from '../../models/config-types.js'; import type { WorkRequirementEstimate } from './contracts.js'; export interface RoutingSelectionInput { autoRouting: AutoRoutingConfig; step: { name: string; tags?: string[]; personaKey?: string; }; estimate?: WorkRequirementEstimate; estimatorFailure?: Error; } export interface RoutingSelection { candidate: AutoRoutingCandidate; poolName?: string; resolutionSource: 'auto.rules' | 'auto.dynamic' | 'auto.fallback'; requiredTier?: RoutingTier; fallbackReason?: 'estimator-failure'; } export type ExecutableRoutingCandidates = { candidates: [AutoRoutingCandidate]; selectionCandidates: [AutoRoutingCandidate]; resolutionSource: 'auto.rules'; } | { candidates: AutoRoutingCandidate[]; selectionCandidates: AutoRoutingCandidate[]; fallbackCandidate: AutoRoutingCandidate; poolName: string; resolutionSource: 'auto.dynamic'; }; type RoutingPoolTarget = { name?: string; tags?: string[]; personaKey?: string; }; export declare function resolveAutoRoutingRuleCandidate(autoRouting: AutoRoutingConfig, step: RoutingSelectionInput['step']): AutoRoutingCandidate | undefined; export declare function hasAutoRoutingPoolAssignment(config: AutoRoutingConfig, step: RoutingPoolTarget): boolean; export declare function resolveExecutableRoutingCandidates(autoRouting: AutoRoutingConfig, step: RoutingSelectionInput['step']): ExecutableRoutingCandidates; export declare function selectRoutingCandidate(input: RoutingSelectionInput): RoutingSelection; export declare function maxRoutingTier(left: RoutingTier, right: RoutingTier): RoutingTier; export declare function promoteRoutingTier(tier: RoutingTier): RoutingTier; export {}; //# sourceMappingURL=selector.d.ts.map