import type { LocalProviderStats } from "./session-stats.js"; /** Unified quota window -- one per rate-limit bucket. */ export interface QuotaWindow { label: string; // "5h" / "7d" / "Balance" / "Rolling" / "Weekly" usedPercent: number; // 0-100 resetsAt: string | null; // ISO 8601 or null when no reset windowSeconds: number; // Window duration (0 for balance-type) usedValue: number; limitValue: number; isCurrency?: boolean; limited?: boolean; // Rate-limited right now } export type ProviderId = | "antigravity" | "openai-codex" | "deepseek" | "openrouter" | "xai" | "kimi-coding" | "opencode-go"; export type QuotaResult = | { ok: true; provider: ProviderId; windows: QuotaWindow[] } | { error: string; ok: false; provider: ProviderId }; export interface ProviderUsageSnapshot { error?: string; name: string; ok: boolean; provider: ProviderId; stats: LocalProviderStats; windows: QuotaWindow[]; }