export declare const CLAUDE_USAGE_EVENT = "claude-bridge:usage"; export declare const CLAUDE_USAGE_PROVIDER = "anthropic-claude-code"; export interface ClaudeUsageWindow { id: "five_hour" | "weekly"; label: "5h" | "weekly"; windowSeconds: number; usedPercent: number; resetAt: string | null; } export interface ClaudeUsageReport { provider: typeof CLAUDE_USAGE_PROVIDER; observedAt: string; planType: string | null; windows: ClaudeUsageWindow[]; } export type ClaudeUsageParse = { kind: "report"; report: ClaudeUsageReport; } | { kind: "not_applicable"; } | { kind: "invalid"; }; export declare function parseClaudeUsage(response: unknown, observedAt: string): ClaudeUsageParse; export declare const CLAUDE_USAGE_METHOD = "usage_EXPERIMENTAL_MAY_CHANGE_DO_NOT_RELY_ON_THIS_API_YET"; export declare const DEFAULT_USAGE_INTERVAL_MS = 60000; /** Shared switch-off rules for every way the bridge reads usage. */ export interface ClaudeUsageGuard { readonly disabled: boolean; /** One guarded read through a live query. Resolves to a report or null; never rejects. */ read(query: unknown, now?: () => number): Promise; } export declare function createClaudeUsageGuard(onDisabled?: (reason: string) => void): ClaudeUsageGuard; export interface ClaudeUsageReader { /** Read usage through a live query if a read is due. Never throws or blocks the caller. */ maybeRead(query: unknown): void; readonly disabled: boolean; } export declare function createClaudeUsageReader(options: { publish: (report: ClaudeUsageReport) => void; onDisabled?: (reason: string) => void; intervalMs?: number; now?: () => number; }): ClaudeUsageReader;