export interface TheOddsHistoricalEvent {
    id: string;
    sport_key: string;
    sport_title: string;
    commence_time: string;
    home_team: string;
    away_team: string;
}
export interface TheOddsCurrentEvent {
    id: string;
    sport_key: string;
    sport_title: string;
    commence_time: string;
    home_team: string;
    away_team: string;
    bookmakers: TheOddsBookmaker[];
}
export interface TheOddsMarketOutcome {
    name: string;
    description?: string | null;
    price?: number | null;
    point?: number | null;
}
export interface TheOddsBookmakerMarket {
    key: string;
    last_update?: string | null;
    outcomes?: TheOddsMarketOutcome[];
}
export interface TheOddsBookmaker {
    key: string;
    title: string;
    last_update?: string | null;
    markets?: TheOddsBookmakerMarket[];
}
export interface TheOddsMoneylineOdds {
    home: number | null;
    away: number | null;
    draw?: number | null;
}
export interface TheOddsSpreadOdds {
    home: {
        line: number | null;
        odds: number | null;
    } | null;
    away: {
        line: number | null;
        odds: number | null;
    } | null;
}
export interface TheOddsTotalOdds {
    over: {
        line: number | null;
        odds: number | null;
    } | null;
    under: {
        line: number | null;
        odds: number | null;
    } | null;
}
export interface TheOddsGameOdds {
    moneyline: TheOddsMoneylineOdds;
    spread: TheOddsSpreadOdds;
    total: TheOddsTotalOdds;
}
export interface TheOddsEventOddsSnapshot {
    timestamp: string;
    eventId: string;
    sportKey: string;
    commenceTime: string;
    homeTeam: string;
    awayTeam: string;
    bookmakers: TheOddsBookmaker[];
}
export interface SelectedPlayerPropOutcome {
    bookmakerKey: string;
    bookmakerTitle: string;
    marketKey: string;
    playerName: string;
    direction: 'over' | 'under';
    odds: number | null;
    line: number | null;
    marketUpdatedAt: string | null;
    bookmakerUpdatedAt: string | null;
}
export declare function teamMatchScore(a: string | null | undefined, b: string | null | undefined): number;
export declare function extractCurrentGameOdds(event: TheOddsCurrentEvent | null | undefined): TheOddsGameOdds;
export declare function matchCurrentGameOdds(events: TheOddsCurrentEvent[], params: {
    homeTeam: string;
    awayTeam: string;
    startsAt: string;
}): TheOddsGameOdds | null;
export declare function mergeMissingGameOdds(primary: {
    moneyline: {
        home: number | null;
        away: number | null;
    };
    spread: {
        home: {
            line: number | null;
            odds: number | null;
        } | null;
        away: {
            line: number | null;
            odds: number | null;
        } | null;
    };
    total: {
        over: {
            line: number | null;
            odds: number | null;
        } | null;
        under: {
            line: number | null;
            odds: number | null;
        } | null;
    };
}, fallback?: TheOddsGameOdds | null): TheOddsGameOdds;
export declare function getTheOddsSportKey(league: string | null | undefined): string | null;
export declare function getTheOddsPlayerPropMarketKey(league: string | null | undefined, propStat: string | null | undefined): string | null;
export declare function hasTheOddsApiConfigured(): boolean;
export declare function fetchCurrentOdds(params: {
    sportKey: string;
    markets: string[];
    regions?: string[];
    bookmakers?: string[];
}): Promise<TheOddsCurrentEvent[]>;
export declare function fetchHistoricalEvents(sportKey: string, snapshotTime: string): Promise<TheOddsHistoricalEvent[]>;
export declare function fetchHistoricalEventOdds(params: {
    sportKey: string;
    eventId: string;
    snapshotTime: string;
    markets: string[];
    bookmakers?: string[];
}): Promise<TheOddsEventOddsSnapshot>;
export declare function fetchCurrentEventOdds(params: {
    sportKey: string;
    eventId: string;
    markets: string[];
    bookmakers?: string[];
}): Promise<TheOddsEventOddsSnapshot>;
export declare function matchCurrentEvent(events: TheOddsCurrentEvent[], params: {
    homeTeam: string;
    awayTeam: string;
    startsAt: string;
}): TheOddsCurrentEvent | null;
export declare function matchHistoricalEvent(events: TheOddsHistoricalEvent[], params: {
    homeTeam: string;
    awayTeam: string;
    startsAt: string;
}): TheOddsHistoricalEvent | null;
export declare function selectBestPlayerPropOutcome(snapshot: TheOddsEventOddsSnapshot, params: {
    marketKey: string;
    playerName: string;
    direction: 'over' | 'under';
    targetLine?: number | null;
    preferNearestLine?: boolean;
    bookmakerKey?: string | null;
}): SelectedPlayerPropOutcome | null;
//# sourceMappingURL=the-odds.d.ts.map