/**
 * Rainmaker Intelligence Engine (RIE) — Core Type Definitions
 *
 * All shared interfaces for the unified forecast intelligence pipeline.
 */
export interface SignalResult {
    signalId: string;
    score: number;
    weight: number;
    available: boolean;
    rawData: any;
    metadata: {
        latencyMs: number;
        source: 'file' | 'db' | 'api' | 'cache';
        freshness: string;
    };
}
export interface Signal {
    id: string;
    name: string;
    supportedLeagues: string[];
    collect(ctx: MatchupContext): Promise<SignalResult>;
}
export interface MatchupContext {
    league: string;
    homeTeam: string;
    awayTeam: string;
    homeShort: string;
    awayShort: string;
    startsAt: string;
    eventId: string;
    event?: any;
}
export interface StrategyProfile {
    league: string;
    signalWeights: Record<string, number>;
    requiredSignals: string[];
    optionalSignals: string[];
    ragQueries: string[];
}
export interface RagInsight {
    query: string;
    topChunks: Array<{
        content: string;
        source: string;
        score: number;
    }>;
    applicableTheory: string;
    cached: boolean;
}
export interface IntelligenceResult {
    compositeConfidence: number;
    stormCategory: number;
    signals: SignalResult[];
    strategyProfile: StrategyProfile;
    ragInsights: RagInsight[];
    edgeBreakdown: Record<string, {
        score: number;
        weight: number;
        contribution: number;
    }>;
    inputQuality: InputQuality;
    compositeVersion: string;
}
export interface InputQuality {
    piff: Grade;
    dvp: Grade;
    digimon: Grade;
    odds: Grade;
    rag: Grade;
    overall: Grade;
}
export type Grade = 'A' | 'B' | 'C' | 'D' | 'N/A';
export interface LegacyCompositeResult {
    compositeConfidence: number;
    stormCategory: number;
    modelSignals: {
        grok: {
            confidence: number;
            valueRating: number;
        } | null;
        piff: {
            avgEdge: number;
            legCount: number;
            topPicks: Array<{
                name: string;
                stat: string;
                line: number;
                edge: number;
                direction: string;
                tier: string;
                szn_hr?: number;
            }>;
        } | null;
        digimon: {
            available: boolean;
            lockCount: number;
            avgMissRate: number;
            topPicks: Array<{
                player: string;
                prop: string;
                line: number;
                missRate: number;
                verdict: string;
            }>;
        } | null;
        dvp: {
            home: Record<string, Array<{
                stat: string;
                rank: number;
                tier: string;
            }>> | null;
            away: Record<string, Array<{
                stat: string;
                rank: number;
                tier: string;
            }>> | null;
        } | null;
    };
    edgeBreakdown: {
        grokScore: number;
        piffScore: number;
        digimonScore: number | null;
        cornerScoutScore?: number;
        fangraphsScore?: number;
        kenpomScore?: number;
        kenpomMOV?: number;
        weights: Record<string, number>;
    };
    compositeVersion: string;
    rieSignals?: SignalResult[];
    ragInsights?: RagInsight[];
    strategyId?: string;
}
//# sourceMappingURL=types.d.ts.map