/**
 * Progress Tracker — CC ProgressTracker / AgentProgress parity.
 *
 * Tracks tool use count, token consumption (input/output split),
 * and recent tool activities for UI display.
 *
 * Reference: claude-code src/tasks/LocalAgentTask/LocalAgentTask.tsx
 */
/**
 * Describes a single tool use activity — for UI previews and progress display.
 */
export interface ToolActivity {
    toolName: string;
    input: Record<string, unknown>;
    /** Pre-computed activity description, e.g. "Reading src/foo.ts" */
    activityDescription?: string;
    /** True if this is a search operation (grep, glob, etc.) */
    isSearch?: boolean;
    /** True if this is a read operation (read_file, cat, etc.) */
    isRead?: boolean;
}
/**
 * UI-facing progress snapshot — sent to host via JSON-RPC notifications.
 */
export interface AgentProgress {
    toolUseCount: number;
    tokenCount: number;
    lastActivity?: ToolActivity;
    recentActivities?: ToolActivity[];
    summary?: string;
}
/**
 * Internal mutable state for tracking progress across a query loop.
 *
 * Token tracking note:
 *   - input_tokens in the API is cumulative per turn (includes all previous context),
 *     so we keep the latest value.
 *   - output_tokens is per-turn, so we sum those.
 */
export interface ProgressTracker {
    toolUseCount: number;
    latestInputTokens: number;
    cumulativeOutputTokens: number;
    recentActivities: ToolActivity[];
}
export declare function createProgressTracker(): ProgressTracker;
export declare function getTokenCountFromTracker(tracker: ProgressTracker): number;
/**
 * Resolver function that returns a human-readable activity description
 * for a given tool name and input.
 */
export type ActivityDescriptionResolver = (toolName: string, input: Record<string, unknown>) => string | undefined;
/**
 * Default activity description resolver — extracts meaningful preview
 * from tool input for UI display.
 */
export declare function defaultActivityDescription(toolName: string, input: Record<string, unknown>): string | undefined;
/**
 * Update tracker from an assistant message's usage and tool calls.
 *
 * CC equivalent: updateProgressFromMessage()
 */
export declare function updateProgressFromUsage(tracker: ProgressTracker, usage: {
    input_tokens?: number;
    output_tokens?: number;
    cache_creation_input_tokens?: number;
    cache_read_input_tokens?: number;
}): void;
/**
 * Record a tool use in the tracker.
 */
export declare function recordToolUse(tracker: ProgressTracker, toolName: string, input: Record<string, unknown>, resolver?: ActivityDescriptionResolver): void;
/**
 * Get a UI-facing progress snapshot from the tracker.
 *
 * CC equivalent: getProgressUpdate()
 */
export declare function getProgressUpdate(tracker: ProgressTracker): AgentProgress;
