import { CacheState } from "./cache-state.js";

//#region src/utils/cache-debug-walk.d.ts
type CacheDebugSpanRow = {
  data?: Record<string, unknown>;
} & Record<string, unknown>;
interface CacheDebugCall {
  spanId: string;
  timestamp: string;
  operationId: string;
  model: string;
  modelProvider: string;
  generationType: string;
  subAgentId: string;
  inputTokens: number;
  cacheReadTokens: number;
  cacheCreationTokens: number;
  markerCount: number;
  prefixSignature: string;
  cacheState: CacheState;
}
/**
 * Walk the LLM-span rows chronologically, deriving each call's cache state.
 *
 * The walk sorts rows by `SPAN_KEYS.TIMESTAMP` (ascending) and derives each
 * call's `CacheState` from its own attributes (marker count, cache-read tokens,
 * provider support).
 */
declare function deriveCacheDebugCalls(rows: CacheDebugSpanRow[]): CacheDebugCall[];
//#endregion
export { CacheDebugCall, CacheDebugSpanRow, deriveCacheDebugCalls };