export interface CostSummary {
    period: string;
    totalCostCents: number;
    totalTokens: number;
    runCount: number;
    byModel: Record<string, {
        costCents: number;
        tokens: number;
        runs: number;
    }>;
    byScenario: Array<{
        scenarioId: string;
        name: string;
        costCents: number;
        tokens: number;
        runs: number;
    }>;
    avgCostPerRun: number;
    estimatedMonthlyCents: number;
}
export interface BudgetConfig {
    maxPerRunCents: number;
    maxPerDayCents: number;
    warnAtPercent: number;
}
export declare function getCostSummary(options?: {
    projectId?: string;
    period?: "day" | "week" | "month" | "all";
}): CostSummary;
/**
 * Estimate the total cost in cents for running a batch of scenarios.
 * scenarioCount × costPerScenario × samples
 */
export declare function estimateRunCostCents(scenarioCount: number, model: string, samples?: number): number;
export interface ScenarioCostRow {
    scenarioId: string;
    name: string;
    runCount: number;
    totalCostCents: number;
    avgCostPerRunCents: number;
}
export declare function getCostsByScenario(options?: {
    projectId?: string;
    period?: "day" | "week" | "month" | "all";
}): ScenarioCostRow[];
export declare function formatCostsByScenarioTerminal(rows: ScenarioCostRow[], period: string): string;
export declare function checkBudget(estimatedCostCents: number): {
    allowed: boolean;
    warning?: string;
};
export declare function formatCostsTerminal(summary: CostSummary): string;
export declare function formatCostsJSON(summary: CostSummary): string;
export declare function formatCostsCsv(summary: CostSummary): string;
//# sourceMappingURL=costs.d.ts.map