/**
 * `tool_calls`, one row per tool call (D0091).
 *
 * The finest-grain agent-behavior table: every tool the agent invoked, in
 * order, with its normalized category, provenance, latency, and error flag.
 * Answers "which tools does each model lean on, how long do they take, how
 * often do they error" across modes and areas.
 *
 * Grain is one `toolCalls[i]` inside one `traces` entry (`EvalTrace`, per
 * run × mode × task × model × trial). A run with no traces (April runs
 * predate trace capture) yields zero rows, absence is normal.
 *
 * Derives from the canonical `EvalTrace` / `ToolCallRecord` core types
 * (D0045, derive, don't redeclare).
 *
 * @see packages/core/src/types/trace.ts, EvalTrace, ToolCallRecord
 * @see docs/design-docs/bigquery-analytics-fact-loader.md
 */
import { z } from "zod";
import { type RunFactBase } from "./common.js";
export type ToolCallFactRow = RunFactBase & {
    readonly mode: string;
    readonly task: string;
    readonly model_id: string;
    /** Trial index (1-based); single-trial runs are trial 1. */
    readonly trial: number;
    /** The trace this call belongs to. */
    readonly trace_id: string;
    /** 0-based position of the call within the trace. */
    readonly sequence: number;
    /** Tool name as reported by the provider. */
    readonly tool_name: string;
    /** Normalized category (search/read/write/execute/navigate/communicate). */
    readonly category: string;
    /** Where the call was observed (loop-transcript/http-observer/provider-metadata). */
    readonly source: string;
    /** Wall-clock duration of the call in milliseconds. */
    readonly duration_ms: number | null;
    /** Whether the call reported an error. */
    readonly is_error: boolean;
};
declare const rowSchema: z.ZodObject<{
    mode: z.ZodString;
    task: z.ZodString;
    model_id: z.ZodString;
    trial: z.ZodNumber;
    trace_id: z.ZodString;
    sequence: z.ZodNumber;
    tool_name: z.ZodString;
    category: z.ZodString;
    source: z.ZodString;
    duration_ms: z.ZodNullable<z.ZodNumber>;
    is_error: z.ZodBoolean;
    run_id: z.ZodString;
    report_id: z.ZodNullable<z.ZodString>;
    completed_at: z.ZodString;
    gs_uri: z.ZodString;
}, z.core.$strip>;
export declare const toolCalls: import("../descriptor.js").FactTableDescriptor<import("../descriptor.js").FactRow>;
export { rowSchema as toolCallFactRowSchema };
