import type { GolfScorecard, HandicapCard } from './types.js'; import type { CommonIssuesFile, RecurringPattern } from './briefing.js'; /** Default player name when scorecard has no player field */ export declare const DEFAULT_PLAYER = "default"; /** Per-player handicap result */ export interface PlayerHandicap { player: string; scorecardCount: number; handicapCard: HandicapCard; } /** * Extract unique sorted player names from scorecards. * Scorecards without a player field are attributed to DEFAULT_PLAYER. */ export declare function extractPlayers(scorecards: GolfScorecard[]): string[]; /** * Filter scorecards to those belonging to a specific player. * Scorecards without a player field match DEFAULT_PLAYER. */ export declare function filterScorecardsByPlayer(scorecards: GolfScorecard[], player: string): GolfScorecard[]; /** * Compute handicap cards for all players found in scorecards. * Each player gets an independent HandicapCard from their own scorecards. */ export declare function computePlayerHandicaps(scorecards: GolfScorecard[]): PlayerHandicap[]; /** * Compute handicap card for a single player. * Returns zeroed stats if no scorecards match. */ export declare function computePlayerHandicap(scorecards: GolfScorecard[], player: string): PlayerHandicap; export type ReporterSeverity = 'low' | 'medium' | 'high'; /** * Compute severity from reporter count. * 1 reporter = low, 2 = medium, 3+ = high. * Deduplicates reporters before counting. */ export declare function computeReporterSeverity(reporters: string[]): ReporterSeverity; /** * Merge new patterns into existing common issues, accumulating reporters * and unioning sprints_hit. Patterns are matched by id. */ export declare function mergeHazardIndices(issues: CommonIssuesFile, newPatterns: RecurringPattern[], reporter: string): CommonIssuesFile; /** * Filter hazards by visibility: team-wide shows all, * player filter shows only those reported by that player (or with no reporters). */ export declare function filterHazardsByVisibility(issues: CommonIssuesFile, opts: { player?: string; teamWide?: boolean; }): CommonIssuesFile; //# sourceMappingURL=player.d.ts.map