/**
 * Forecast Runner — reusable generate/refresh functions extracted from daily-forecasts.ts.
 *
 * Called by both daily-forecasts.ts (batch cron) and forecast-scheduler.ts (per-event scheduler).
 */
import { SgoEvent } from './sgo';
import { RmForecast } from '../models/forecast';
export interface GenerateResult {
    forecastId: string;
    confidence: number;
    compositeConfidence: number;
    success: boolean;
}
export interface RefreshResult {
    oldConfidence: number | null;
    newConfidence: number;
    confDelta: number;
    newOdds: {
        moneyline: any;
        spread: any;
        total: any;
    };
    oldOdds: any;
    compositeVersion: string;
    stormCategory: number;
    refreshMode: 'composite_refresh' | 'full_rebuild';
}
/**
 * Generate a new forecast for an event (no existing forecast).
 * Wraps the "No forecast → generate one" path from daily-forecasts.ts.
 */
export declare function generateForEvent(event: SgoEvent, league: string, label?: string): Promise<GenerateResult>;
/**
 * Refresh an existing forecast — update odds and either re-crunch composite signals
 * or rebuild the full forecast body when the line move is meaningful enough.
 * Wraps the "CRUNCH THE NUMBERS" path from daily-forecasts.ts.
 * Returns pre/post state for material change detection.
 */
export declare function refreshForEvent(event: SgoEvent, league: string, cached: RmForecast, label?: string): Promise<RefreshResult>;
//# sourceMappingURL=forecast-runner.d.ts.map