/**
 * Dean Oliver's Four Factors + Pace Model for NBA Forecasts
 *
 * Intelligence sources:
 *   - "Mathletics" (Wayne Winston) — Four Factors, eFG%, lineup superiority
 *   - "The Logic of Sports Betting" (Ed Miller) — Pace dynamics, Q4 scoring skew
 *   - "Sports Analytics" (Benjamin Alamar) — PER, per-possession efficiency
 *   - "Sharp Sports Betting" (Stanford Wong) — Poisson distribution for props
 *
 * Data source: ESPN public API (team-level season stats, fetched live with 1h cache)
 *
 * Four Factors (Dean Oliver):
 *   1. eFG% = (FGM + 0.5 * 3PM) / FGA
 *   2. TO% = TOV / (FGA + 0.44 * FTA + TOV)
 *   3. OREB% = OREB / (OREB + Opp_DREB)  — estimated from league avg
 *   4. FTR = FTM / FGA (Free Throw Rate)
 *
 * Pace: Possessions ≈ FGA - OREB + TOV + 0.44 * FTA
 */
export interface NBATeamStats {
    teamId: string;
    teamName: string;
    teamShort: string;
    gamesPlayed: number;
    ppg: number;
    fgm: number;
    fga: number;
    fgPct: number;
    tpm: number;
    tpa: number;
    tpPct: number;
    ftm: number;
    fta: number;
    ftPct: number;
    oreb: number;
    dreb: number;
    reb: number;
    ast: number;
    tov: number;
    stl: number;
    blk: number;
    pf: number;
}
export interface FourFactors {
    efg: number;
    toPct: number;
    orebPct: number;
    ftr: number;
}
export interface TeamProfile {
    stats: NBATeamStats;
    offense: FourFactors;
    pace: number;
    offRtg: number;
    scoringEfficiency: number;
    threePointRate: number;
    astTovRatio: number;
    rebRate: number;
}
export interface FourFactorsMatchup {
    home: TeamProfile;
    away: TeamProfile;
    expectedPace: number;
    expectedTotal: number;
    efgEdge: number;
    efgEdgeWins: number;
    paceImpact: string;
    propAdjustments: PropAdjustment[];
}
export interface PropAdjustment {
    factor: string;
    direction: 'boost' | 'suppress';
    magnitude: string;
    explanation: string;
    affectedProps: string[];
}
interface CachedTeamData {
    teams: Map<string, TeamProfile>;
    leagueAvg: {
        pace: number;
        ppg: number;
        efg: number;
        oreb: number;
        dreb: number;
    };
    fetchedAt: number;
}
export declare function fetchAllNBATeams(): Promise<CachedTeamData>;
export declare function getFourFactorsMatchup(homeShort: string, awayShort: string): Promise<FourFactorsMatchup | null>;
export declare function formatFourFactorsForPrompt(data: FourFactorsMatchup): string;
export {};
//# sourceMappingURL=four-factors.d.ts.map