/**
 * Cumulative cost summary with Claude benchmark math.
 *
 * Wraps the existing `loadCostUsageSummary` (which scans all session JSONL
 * transcripts in `~/.symi/sessions/...`) and augments each day's totals with
 * what the same input/output token mix would have cost on each Claude tier.
 *
 * For self-hosted providers whose totals come back as $0 (because the user
 * configured `cost: { input: 0, output: 0, ... }`), this wrapper does NOT
 * retroactively re-cost — that would require provider+model attribution per
 * day, which the current scanner doesn't preserve. Phase 5 captures the
 * comparison surface; instance-derived per-day rebilling can be a Phase 6+
 * follow-up if useful.
 */
import type { SymiConfig } from "../config/config.js";
import { type CostUsageDailyEntry, type CostUsageSummary } from "../infra/session-cost-usage.js";
import { type ClaudeTier } from "./benchmark.js";
export type BenchmarkPerTier = Record<ClaudeTier, number>;
export type CostSummaryDailyEntry = CostUsageDailyEntry & {
    benchmarkUsd: BenchmarkPerTier;
};
export type CostBenchmarkSummary = Omit<CostUsageSummary, "daily"> & {
    daily: CostSummaryDailyEntry[];
    benchmarkTotals: BenchmarkPerTier;
    /** Total potential savings vs each tier (negative values mean overspend). */
    savingsTotals: BenchmarkPerTier;
};
export declare function loadCostBenchmarkSummary(params?: {
    startMs?: number;
    endMs?: number;
    days?: number;
    config?: SymiConfig;
    agentId?: string;
}): Promise<CostBenchmarkSummary>;
export type CostSummaryWindow = "today" | "week" | "month" | "all";
export declare function resolveWindow(window: CostSummaryWindow, now?: number): {
    startMs: number;
    endMs: number;
};
export declare function formatSummaryReport(summary: CostBenchmarkSummary, label?: string): string;
