type MarketSide = 'over' | 'under';
type MarketCompletenessStatus = 'source_complete' | 'multi_source_complete' | 'incomplete';
type MarketCompletionMethod = 'none' | 'source' | 'multi_source';
type RawTeamPropMarketRow = {
    playerExternalId?: string | null;
    propType?: string | null;
    lineValue?: number | null;
    oddsAmerican?: number | null;
    vendor?: string | null;
    market?: string | null;
    marketName?: string | null;
    marketScope?: string | null;
    updatedAt?: string | null;
    oddId?: string | null;
    raw?: Record<string, any> | null;
};
export interface TeamPropMarketSourceMapEntry {
    side: MarketSide;
    source: string;
    odds: number | null;
    timestamp: string | null;
    rawMarketId: string | null;
}
export interface TeamPropMarketCandidate {
    player: string;
    statType: string;
    normalizedStatType: string;
    marketLineValue: number;
    overOdds: number | null;
    underOdds: number | null;
    availableSides: MarketSide[];
    source: string | null;
    marketName: string;
    propLabel: string;
    completenessStatus?: MarketCompletenessStatus;
    completionMethod?: MarketCompletionMethod;
    isGapFilled?: boolean;
    sourceMap?: TeamPropMarketSourceMapEntry[];
}
export interface TeamPropMarketCandidateParams {
    league: string;
    teamShort: string;
    opponentShort: string;
    startsAt: string;
    teamName?: string;
    opponentName?: string;
    homeTeam?: string;
    awayTeam?: string;
    skipTheOddsVerification?: boolean;
    throwOnSourceQueryError?: boolean;
}
export interface GeneratedTeamPropCandidateLike {
    player: string;
    prop: string;
    recommendation: string;
    reasoning: string;
    edge?: number;
    prob?: number;
    projected_stat_value?: number;
    stat_type?: string;
    market_line_value?: number;
    model_context?: Record<string, any>;
}
export declare function buildTeamPropMarketCandidatesFromRows(rows: RawTeamPropMarketRow[], params: Pick<TeamPropMarketCandidateParams, 'league' | 'teamShort'>): TeamPropMarketCandidate[];
export declare function fetchTeamPropMarketCandidates(params: TeamPropMarketCandidateParams): Promise<TeamPropMarketCandidate[]>;
export declare function formatTeamPropMarketCandidatesForPrompt(candidates: TeamPropMarketCandidate[], teamName: string): string;
export declare function validateTeamPropsAgainstMarketCandidates(props: GeneratedTeamPropCandidateLike[], candidates: TeamPropMarketCandidate[], league: string): GeneratedTeamPropCandidateLike[];
export {};
//# sourceMappingURL=team-prop-market-candidates.d.ts.map