/** 归一化后的余额条目——显示层与具体 provider 解耦。 */ export interface BalanceEntry { currency: string; total: string; display?: string; details?: BalanceDetail[]; } export type BalanceDetailKey = "plan" | "used" | "remaining" | "window" | "reset" | "codeReview" | "credits" | "resetCredits"; export interface BalanceDetail { key: BalanceDetailKey; value: string; windowSeconds?: number; } /** provider 统一错误:message 即错误码(401/403/EMPTY/…),显示层直接展示。 */ export declare class BalanceError extends Error { } /** 可插拔的余额 provider 适配器。 */ export interface BalanceProvider { id: string; name: string; keyPlaceholder?: string; fetchBalance(apiKey: string, signal?: AbortSignal): Promise; } export declare function parseOpenAIUsage(raw: unknown, nowMs?: number): BalanceEntry[]; /** 已注册的 provider 列表(按需追加新适配器)。 */ export declare const balanceProviders: BalanceProvider[]; /** 按 id 取 provider;未知 id 回退到第一个。 */ export declare function getBalanceProvider(id: string): BalanceProvider; /** * 按 OpenCode providerID 匹配余额 provider。 * 先精确匹配,再按前缀匹配(如 moonshotai-cn → moonshot);未命中返回 undefined。 * 比较不区分大小写,容忍 providerID 的大小写变体。 */ export declare function matchBalanceProvider(providerId: string): BalanceProvider | undefined; /** key 脱敏:保留头 5 尾 5 字符,中间用 * 填充。 */ export declare function maskKey(k: string): string;