import type { AgentSession } from '../agent/session.js'; export interface ContextSamplerOptions { sampleEveryNTurns?: number; } interface ContextUsageSource { getContextUsage(): Promise<{ apiUsage?: { input_tokens: number; output_tokens: number; cache_creation_input_tokens: number; cache_read_input_tokens: number; context_window_tokens?: number; } | null; percentage?: number; totalTokens?: number; maxTokens?: number; autoCompactThreshold?: number; isAutoCompactEnabled: boolean; [key: string]: unknown; }>; } export declare class ContextSampler { private source; private readonly sampleEveryNTurns; private cachedRatio; private cachedDetail; private inFlight; private disposed; private generation; constructor(source: ContextUsageSource, opts?: ContextSamplerOptions); attach(session: AgentSession): this; getRatio(): number | undefined; getDetail(): { used: number; limit: number; percentage: number; } | undefined; refresh(): Promise; onTurn(turnIndex: number): Promise; reset(): void; dispose(): void; private doFetch; } export {};