import type { CacheStats, TokenCounter, Usage } from '@wrongstack/core/types'; import type { EventBus } from '@wrongstack/core/kernel'; export interface TokenRefreshData { usage: Usage; /** Last request prompt tokens from the counter, used when provider usage is unavailable. */ currentRequest: { input: number; cacheRead: number; cacheWrite?: number | undefined; }; cost: { input: number; output: number; total: number; currency: 'USD'; }; cacheStats: CacheStats; } export declare function snapshotTokenCounter(tokenCounter: TokenCounter): TokenRefreshData; /** * Subscribes to `token.accounted` events and forces a re-render so StatusBar * always shows fresh token/cost data without waiting for the slow polling * interval that would otherwise gate them. * * Without this hook, the StatusBar reads from a mutable `tokenCounter` * object on each render, but React only re-renders when state/props change. * The tokenCounter is mutated by `account()` calls that arrive asynchronously * from provider responses, causing stale data for up to 10 seconds. */ export declare function useTokenCounterRefresh(tokenCounter: TokenCounter | undefined, events: EventBus | undefined, sessionId?: string | undefined): TokenRefreshData | undefined; //# sourceMappingURL=use-token-counter-refresh.d.ts.map