import type { SeedContextCategory } from "../context-ledger/index.js";
export type SeedRunBudgetState = {
    schema_version: 1;
    run_id: string;
    created_at: string;
    updated_at: string;
    limits: {
        max_runtime_hours: number;
        max_child_sessions: number;
        max_model_calls: number;
        warn_ratio: number;
        stale_worker_minutes: number;
    };
    usage: {
        child_sessions: number;
        model_calls: number;
        tokens_by_model: Record<string, SeedRunBudgetTokenUsage>;
        context: {
            injected_chars_total: number;
            injected_chars_by_category: Partial<Record<SeedContextCategory, number>>;
            duplicate_bundle_injections: Record<string, number>;
        };
    };
    first_warning_at?: string;
    blocking_reason?: string;
};
export type SeedRunBudgetTokenUsage = {
    input: number;
    output: number;
    reasoning: number;
    total: number;
};
export type SeedRunBudgetEvaluation = {
    status: "ok" | "warning" | "blocked";
    warnings: string[];
    blocking_reason?: string;
    ratios: {
        runtime: number;
        child_sessions: number;
        model_calls: number;
    };
};
export type SeedRunBudgetUsageInput = {
    child_sessions?: number;
    model_calls?: number;
    model?: string;
    token_usage?: Record<string, unknown>;
};
export type SeedRunBudgetContextUsageInput = {
    injected_chars?: number;
    attachments?: Array<{
        bundle_id: string;
        category: SeedContextCategory;
        char_count?: number;
    }>;
};
