/**
 * KenPom Data Service for Rainmaker Forecasts
 * -------------------------------------------------
 * Provides NCAA team metrics from KenPom tables for:
 *  - Forecast prompt enrichment (injected into Grok context)
 *  - Composite score adjustments
 *  - Matchup profiling
 */
export interface KenPomTeamProfile {
    teamName: string;
    record: string;
    kpRank: number;
    adjEM: number;
    adjOE: number;
    rankAdjOE: number;
    adjDE: number;
    rankAdjDE: number;
    adjTempo: number;
    luck: number;
    sosRank: number;
    efgPct: number | null;
    toPct: number | null;
    orPct: number | null;
    ftRate: number | null;
    deFgPct: number | null;
    dToPct: number | null;
    dOrPct: number | null;
    dFtRate: number | null;
    avgHgt: number | null;
    experience: number | null;
    bench: number | null;
    continuity: number | null;
    fg3Pct: number | null;
    fg2Pct: number | null;
    aRate: number | null;
    blockPct: number | null;
    oppFg3Pct: number | null;
    oppFg2Pct: number | null;
    offFg3: number | null;
    offFg2: number | null;
    defFg3: number | null;
    confShort: string | null;
    confRank: number | null;
    confRating: number | null;
}
export interface KenPomMatchup {
    home: KenPomTeamProfile | null;
    away: KenPomTeamProfile | null;
    fanmatch: {
        homeWP: number | null;
        homePred: number | null;
        visitorPred: number | null;
        predTempo: number | null;
        thrillScore: number | null;
    } | null;
    edgeSignals: {
        emGap: number | null;
        tempoMismatch: boolean;
        offDefMismatch: string | null;
        experienceEdge: string | null;
        luckWarning: string | null;
        sosAdjustment: string | null;
    };
}
/**
 * Get KenPom team profile for a given team name.
 * Tries: exact KenPom name → kp_team_map canonical → normalized fuzzy match
 */
export declare function getKenPomProfile(teamName: string, season?: number): Promise<KenPomTeamProfile | null>;
/**
 * Build a full KenPom matchup profile for two teams.
 */
export declare function getKenPomMatchup(homeTeam: string, awayTeam: string, league: string, gameDate?: string): Promise<KenPomMatchup | null>;
/**
 * Compute KenPom-predicted Margin of Victory using AdjEM differential.
 * Formula: predicted MOV = (home AdjEM - away AdjEM) + home court advantage
 * Home court advantage in college basketball averages ~3.3 points.
 * For neutral sites (tournament), home court = 0.
 * Returns a calibrated 0-1 confidence score based on how strongly KenPom predicts the winner.
 */
export declare function computeKenPomMOVScore(matchup: KenPomMatchup, neutralSite?: boolean): {
    predictedMOV: number;
    confidence: number;
    gamesPlayed: number;
};
/**
 * Format KenPom data for injection into the Grok forecast prompt.
 */
export declare function formatKenPomForPrompt(matchup: KenPomMatchup): string;
//# sourceMappingURL=kenpom.d.ts.map