export interface UsageWindow { readonly utilization: number; readonly resetsAt?: Date; } export interface UsageSnapshot { readonly kind: 'ok'; readonly fiveHour?: UsageWindow; readonly sevenDay?: UsageWindow; readonly sevenDaySonnet?: UsageWindow; readonly sevenDayOpus?: UsageWindow; } export type UsageUnavailableReason = 'no-token' | 'http-error' | 'malformed-response' | 'timeout' | 'network-error'; export interface UsageUnavailable { readonly kind: 'unavailable'; readonly reason: UsageUnavailableReason; readonly detail: string; } export type UsageResult = UsageSnapshot | UsageUnavailable; export interface FetchSubscriptionUsageOptions { readonly fetchImpl?: typeof fetch; readonly token?: string; readonly timeoutMs?: number; } export declare function fetchSubscriptionUsage(options?: FetchSubscriptionUsageOptions): Promise; export declare function formatUsagePlain(result: UsageResult): string;