import type { GolfScorecard, ClubRecommendation, ShotClassification, ExecutionTrace, TrainingRecommendation, HandicapCard, DispersionReport, CISignal, PRSignal, SlopeEvent } from './types.js'; export interface RecommendClubInput { ticketComplexity: 'trivial' | 'small' | 'medium' | 'large'; scorecards: GolfScorecard[]; slopeFactors?: string[]; } /** * Recommend a club (approach complexity) for an upcoming ticket. * * Logic: * 1. Map ticket complexity to default club (large → long_iron, never driver) * 2. Check historical performance — if default club miss_rate > 30%, downgrade one level * 3. Check dispersion for dominant miss — add provisional suggestion if ≥3 total misses * 4. Confidence: 1.0 with ≥5 scorecards for that club, 0.5 with 1-4, 0.3 with 0 */ export declare function recommendClub(input: RecommendClubInput): ClubRecommendation; /** * Classify a shot result from an execution trace. * * Rules: * - All files in scope, no failures, no reverts → in_the_hole * - Has hazards, all resolved before first green suite → in_the_hole (in-pass fix) * - Has hazards, resolved after initial pass → green (required rework) * - Files outside scope modified → missed_long (over-engineering) * - Planned files not modified → missed_short (under-scoping) * - Reverts > 0 or approach changed → missed_left (wrong approach) * - Some test suites fail despite others passing → missed_right (wrong execution) */ export declare function classifyShot(trace: ExecutionTrace): ShotClassification; /** Combined signal sources for enhanced shot classification */ export interface CombinedSignals { trace: ExecutionTrace; ci?: CISignal; pr?: PRSignal; events?: SlopeEvent[]; } /** * Enhanced shot classification using multiple signal sources. * * Key difference from classifyShot(): * - Git-only (no CI, no events) defaults to `green` instead of `in_the_hole` * - CI signals can upgrade to `in_the_hole` (all tests pass, no retries, no failures) * - CI test failures add miss signals (missed_right) * - CI retries reduce confidence * - Events (failure, dead_end, scope_change) add miss signals */ export declare function classifyShotFromSignals(input: CombinedSignals): ShotClassification; export interface TrainingPlanInput { handicap: HandicapCard; dispersion: DispersionReport; recentScorecards: GolfScorecard[]; } /** * Generate training recommendations from handicap trends and dispersion data. * * Checks: * 1. Dominant miss direction → targeted practice (high) * 2. Worsening trend (last_5 > all_time) → review (high) * 3. Club-specific issues (miss_rate > 50%) → adjustment (medium) * 4. Recurring hazard types in 3+ consecutive sprints → attention (medium) */ export declare function generateTrainingPlan(input: TrainingPlanInput): TrainingRecommendation[]; //# sourceMappingURL=advisor.d.ts.map