/** * Agent Selector * * Matches tickets to the best agent profile based on file patterns and tags. */ import type { Ticket, Epic, Specification } from '../../types/index.js'; import type { AgentProfile, ProfileMatch, ProfileMatchContext } from './profiles/types.js'; /** * Agent Selector */ export declare class AgentSelector { private profiles; constructor(customProfiles?: AgentProfile[]); /** * Select the best profile for a ticket */ selectProfile(context: ProfileMatchContext): AgentProfile; /** * Get all matching profiles with scores (sorted by score descending) */ matchAll(context: ProfileMatchContext): ProfileMatch[]; /** * Match a single profile against context */ private matchProfile; /** * Collect all tags from ticket context */ private collectTags; /** * Extract affected files from ticket context */ static extractAffectedFiles(context: { ticket: Ticket; epic: Epic; specification: Specification; }): string[]; /** * Get profile by ID */ getProfile(id: string): AgentProfile | undefined; /** * Get all profiles */ getAllProfiles(): AgentProfile[]; /** * Add a custom profile */ addProfile(profile: AgentProfile): void; /** * Remove a profile by ID */ removeProfile(id: string): void; } /** * Create an agent selector with optional custom profiles */ export declare function createAgentSelector(customProfiles?: AgentProfile[]): AgentSelector; //# sourceMappingURL=agent-selector.d.ts.map