import type { BudgetPolicy, ProviderRouting, UsageReport } from "./types.js"; export type RuntimeBudgetEnvelopeAction = "block" | "warn" | "fallback"; export interface RuntimeBudgetEnvelopeProjection { requests: number; inputTokens: number; outputTokens: number; totalTokens: number; estimatedCostUsd: number; retries: number; runtimeMs: number; } export interface RuntimeBudgetEnvelopeViolation { scope: string; metric: "requests" | "inputTokens" | "outputTokens" | "totalTokens" | "estimatedCostUsd" | "retries" | "runtimeMs"; actual: number; limit: number; action: RuntimeBudgetEnvelopeAction; } export interface RuntimeBudgetEnvelopeCheck { passed: boolean; action: RuntimeBudgetEnvelopeAction; appliedBudgets: string[]; projection: RuntimeBudgetEnvelopeProjection; violations: RuntimeBudgetEnvelopeViolation[]; } export interface RuntimeBudgetEnvelopeInput { taskId?: string; role?: string; routing: ProviderRouting; usage: UsageReport; budgets?: BudgetPolicy; } export declare function checkRuntimeBudgetEnvelope(input: RuntimeBudgetEnvelopeInput): RuntimeBudgetEnvelopeCheck;