/** * Terminal Capability Matcher */ import { Task } from '@latestgraviton/protocol'; import { TerminalRegistry } from './registry'; import { TerminalSession } from './types'; /** * Matching strategy */ export declare enum MatchingStrategy { FIRST_AVAILABLE = "first_available", BEST_FIT = "best_fit", LOAD_BALANCED = "load_balanced", SPECIALIZED = "specialized", RANDOM = "random" } /** * Match score for terminal-task pairing */ export interface MatchScore { terminal: TerminalSession; score: number; reasons: string[]; } /** * Matching options */ export interface MatchingOptions { strategy?: MatchingStrategy; requiredCapabilities?: string[]; preferredCapabilities?: string[]; requiredSpecializations?: string[]; preferredSpecializations?: string[]; minTokens?: number; maxCurrentTasks?: number; excludeTerminals?: string[]; preferHighPerformance?: boolean; } /** * Terminal Capability Matcher */ export declare class TerminalMatcher { private registry; private logger; constructor(registry: TerminalRegistry); /** * Find best terminal for a task */ findBestTerminal(task: Task, options?: MatchingOptions): TerminalSession | null; /** * Find all suitable terminals for a task */ findAllSuitableTerminals(task: Task, options?: MatchingOptions): TerminalSession[]; /** * Score terminals for a task */ scoreTerminals(task: Task, options?: MatchingOptions): MatchScore[]; /** * Get candidate terminals based on requirements */ private getCandidateTerminals; /** * Select terminal with lowest load */ private selectLoadBalanced; /** * Select terminal with best specialization match */ private selectSpecialized; /** * Select best fit terminal based on comprehensive scoring */ private selectBestFit; /** * Calculate match score for terminal-task pairing */ private calculateScore; /** * Check if terminal can handle task */ canTerminalHandleTask(terminal: TerminalSession, task: Task): boolean; /** * Get load distribution across terminals */ getLoadDistribution(): Map; /** * Get capability coverage */ getCapabilityCoverage(): Map; } //# sourceMappingURL=matcher.d.ts.map