import type { SignalResult } from './rie/types';
export type MlbDirectMarketContext = {
    marketHomeProb: number | null;
    marketSpreadHome: number | null;
    marketTotal: number | null;
    marketMoveEdge: number;
    marketMoveMagnitude: number;
    reverseLineMove: boolean;
    steamMove: boolean;
    movementRowCount: number;
    bookHomeProbStddev: number;
    bookHomeProbRange: number;
    bookHomeProbSampleCount: number;
    totalLineRange: number;
    totalLineSampleCount: number;
};
export type MlbDirectFeatureVector = {
    marketEdge: number;
    starterQualityEdge: number;
    starterLeashEdge: number;
    bullpenQualityEdge: number;
    bullpenUsageEdge: number;
    parkInteractionEdge: number;
    offenseSplitEdge: number;
    offenseContactEdge: number;
    starterOffenseInteractionEdge: number;
    lineupPressureEdge: number;
    travelRestEdge: number;
    decompositionEdge: number;
    impliedTotalDisagreementEdge: number;
    platoonPressureEdge: number;
    weatherEdge: number;
    marketMoveEdge: number;
    bookDisagreementEdge: number;
    featureCoverage: {
        starterData: boolean;
        bullpenData: boolean;
        parkData: boolean;
        marketData: boolean;
        movementData: boolean;
        bookDisagreementData: boolean;
        platoonData: boolean;
        weatherData: boolean;
        lineupData: boolean;
    };
    raw: Record<string, any>;
};
export type MlbDirectRecommendedMarket = 'moneyline' | 'f5_moneyline' | 'abstain';
export type MlbDirectPolicyConfig = {
    minConfidence: number;
    minMarketEdge: number;
    minFeatureCoverageScore: number;
    minStructuralEdge: number;
    minSupportCount: number;
    maxConflictCount: number;
    f5OnlySeparation: number;
    minF5Edge: number;
};
export type MlbDirectPolicyEvaluation = {
    shouldBet: boolean;
    recommendedMarket: MlbDirectRecommendedMarket;
    featureCoverageScore: number;
    supportCount: number;
    conflictCount: number;
    structuralEdgeAbs: number;
    marketEdgeAbs: number;
    reasons: string[];
};
export type MlbDirectModelConfig = {
    starterWeight: number;
    bullpenWeight: number;
    parkWeight: number;
    marketMicroWeight: number;
    offenseWeight: number;
    contactWeight: number;
    interactionWeight: number;
    travelWeight: number;
    decompositionWeight: number;
    impliedTotalWeight: number;
    platoonWeight: number;
    weatherWeight: number;
    lineupWeight: number;
    signalScale: number;
    maxSignalAdjustment: number;
};
export type MlbDirectDecision = {
    available: boolean;
    homeProbability: number;
    awayProbability: number;
    f5HomeProbability: number;
    f5AwayProbability: number;
    winnerPick: string;
    confidence: number;
    calibratedConfidence: number;
    confidencePenalty: number;
    featureVector: MlbDirectFeatureVector;
    explanation: string[];
    policy: MlbDirectPolicyEvaluation;
};
export type MlbF5ModelConfig = {
    starterQualityWeight: number;
    starterLeashWeight: number;
    offenseWeight: number;
    phaseWeight: number;
    contextWeight: number;
    marketWeight: number;
};
export type MlbF5Decision = {
    available: boolean;
    homeProbability: number;
    awayProbability: number;
    winnerPick: string;
    confidence: number;
    rawEdge: number;
    explanation: string[];
};
export type MlbRunLineModelConfig = {
    starterWeight: number;
    bullpenWeight: number;
    offenseWeight: number;
    phaseWeight: number;
    contextWeight: number;
    marketWeight: number;
    marginScale: number;
};
export type MlbRunLineDecision = {
    available: boolean;
    side: 'home' | 'away';
    winnerPick: string;
    line: number | null;
    coverProbability: number;
    confidence: number;
    projectedMargin: number;
    atsEdge: number;
    explanation: string[];
};
export type MlbTeamTotalModelConfig = {
    starterWeight: number;
    bullpenWeight: number;
    offenseWeight: number;
    contextWeight: number;
    shareScale: number;
    totalDeltaWeight: number;
};
export type MlbTeamTotalMarket = 'home_over' | 'home_under' | 'away_over' | 'away_under';
export type MlbTeamTotalDecision = {
    available: boolean;
    market: MlbTeamTotalMarket;
    team: 'home' | 'away';
    direction: 'over' | 'under';
    line: number | null;
    projectedTeamTotal: number;
    projectedGameTotal: number;
    inferredHomeLine: number | null;
    inferredAwayLine: number | null;
    edge: number;
    probability: number;
    confidence: number;
    explanation: string[];
};
export declare const MLB_DIRECT_MODEL_LIVE_CONFIG: Partial<MlbDirectModelConfig>;
export declare const MLB_F5_MODEL_LIVE_CONFIG: MlbF5ModelConfig;
export declare const MLB_RUN_LINE_MODEL_LIVE_CONFIG: MlbRunLineModelConfig;
export declare const MLB_TEAM_TOTAL_MODEL_LIVE_CONFIG: MlbTeamTotalModelConfig;
export declare const MLB_DIRECT_MODEL_LIVE_POLICY: MlbDirectPolicyConfig;
export declare function extractMlbDirectFeatures(params: {
    signals: SignalResult[];
    oddsData?: any;
    marketContext?: Partial<MlbDirectMarketContext> | null;
}): MlbDirectFeatureVector;
export declare function scoreMlbDirectModel(params: {
    homeTeam: string;
    awayTeam: string;
    featureVector: MlbDirectFeatureVector;
    config?: Partial<MlbDirectModelConfig>;
    policy?: Partial<MlbDirectPolicyConfig>;
}): MlbDirectDecision;
export declare function scoreMlbF5Model(params: {
    homeTeam: string;
    awayTeam: string;
    featureVector: MlbDirectFeatureVector;
    config?: Partial<MlbF5ModelConfig>;
}): MlbF5Decision;
export declare function scoreMlbRunLineModel(params: {
    homeTeam: string;
    awayTeam: string;
    featureVector: MlbDirectFeatureVector;
    config?: Partial<MlbRunLineModelConfig>;
}): MlbRunLineDecision;
export declare function scoreMlbTeamTotalModel(params: {
    homeTeam: string;
    awayTeam: string;
    featureVector: MlbDirectFeatureVector;
    config?: Partial<MlbTeamTotalModelConfig>;
}): MlbTeamTotalDecision;
export declare const MLB_RUN_LINE_MODEL_DEFAULTS: MlbRunLineModelConfig;
export declare const MLB_F5_MODEL_DEFAULTS: MlbF5ModelConfig;
export declare const MLB_DIRECT_MODEL_DEFAULTS: MlbDirectModelConfig;
export declare const MLB_TEAM_TOTAL_MODEL_DEFAULTS: MlbTeamTotalModelConfig;
//# sourceMappingURL=mlb-team-direct-model.d.ts.map