import type { SignalResult } from './rie/types';
export type TeamPlusLeague = 'mlb' | 'nba' | 'nhl';
type TeamPlusSignalKey = 'piff_team_plus' | 'digimon_team_plus' | 'dvp_team_plus' | 'mlb_matchup' | 'mlb_phase' | 'fangraphs';
type TeamPlusComponent = {
    signalId: TeamPlusSignalKey;
    available: boolean;
    homeScore: number | null;
    weight: number;
    rawData: Record<string, any>;
};
export type TeamPlusWeightProfile = Record<TeamPlusLeague, Record<TeamPlusSignalKey, number>>;
export type TeamPlusDecision = {
    league: TeamPlusLeague;
    available: boolean;
    homeScore: number;
    awayScore: number;
    winnerPick: string;
    confidence: number;
    lockedMargin: number;
    weights: Record<string, number>;
    components: TeamPlusComponent[];
    explanation: string[];
};
export type MlbTeamPlusGateSettings = {
    confidenceThreshold: number;
    requireStarterLinked: boolean;
    requireMatchupPhaseAgreement: boolean;
    requirePhaseInternalAgreement: boolean;
    requireFangraphsAgreement: boolean;
    minMatchupEdge: number;
    minPhaseEdge: number;
    minContextEdge: number;
    minBullpenEdge: number;
};
export type MlbTeamPlusMetrics = {
    starterLinked: boolean;
    matchupPhaseAgreement: boolean;
    phaseInternalAgreement: boolean;
    fangraphsAgreement: boolean | null;
    matchupEdge: number;
    phaseEdge: number;
    contextEdge: number;
    bullpenEdge: number;
    fullGameSideReady: boolean;
};
export type MlbAlgoOverride = {
    shouldOverride: boolean;
    winnerPick: string;
    flipProbability: number;
    features: Record<string, number>;
    reason: string[];
};
type HistoricalDecisionParams = {
    league: TeamPlusLeague;
    homeTeam: string;
    awayTeam: string;
    homeShort: string;
    awayShort: string;
    startsAt: string;
    rieSignals: SignalResult[];
    weightsOverride?: TeamPlusWeightProfile;
};
type LiveDecisionParams = {
    league: TeamPlusLeague;
    homeTeam: string;
    awayTeam: string;
    homeShort: string;
    awayShort: string;
    startsAt: string;
    eventId: string;
    event?: any;
};
export declare const TEAM_PLUS_WEIGHTS: TeamPlusWeightProfile;
export declare const MLB_TEAM_PLUS_GATE_DEFAULTS: MlbTeamPlusGateSettings;
export declare function getMlbTeamPlusMetrics(decision: TeamPlusDecision): MlbTeamPlusMetrics | null;
export declare function qualifiesForMlbTeamPlusLock(decision: TeamPlusDecision, settings?: MlbTeamPlusGateSettings): boolean;
export declare function buildMlbBaselineOverride(params: {
    decision: TeamPlusDecision | null;
    baselineWinner: string;
    homeTeam: string;
    awayTeam: string;
}): MlbAlgoOverride | null;
export declare function computeHistoricalTeamPlusDecision(params: HistoricalDecisionParams): TeamPlusDecision;
export declare function buildLiveTeamPlusDecision(params: LiveDecisionParams & {
    weightsOverride?: TeamPlusWeightProfile;
}): Promise<TeamPlusDecision | null>;
export {};
//# sourceMappingURL=team-plus.d.ts.map