/**
 * `symbol_findings`, one row per symbol-preflight finding (D0091).
 *
 * The deterministic-grader signal: for each API binding a candidate imported,
 * did it resolve against the real package (`exists`), was it hallucinated
 * (`missing`), or could the resolver not decide (`unresolved`)? Answers
 * "which APIs get hallucinated most", the framework's headline measurement.
 *
 * Grain is one `SymbolPreflightFinding` inside one `symbolPreflight` entry
 * (per run × mode × task × model). A run without the deterministic lane yields
 * zero rows.
 *
 * Derives from the canonical `SymbolPreflightReport` core type (D0045).
 *
 * @see packages/core/src/types/symbol-preflight-report.ts
 * @see docs/design-docs/bigquery-analytics-fact-loader.md
 */
import { z } from "zod";
import { type RunFactBase } from "./common.js";
export type SymbolFindingFactRow = RunFactBase & {
    readonly mode: string;
    readonly task: string;
    readonly model_id: string;
    /** Package the binding was resolved against. */
    readonly pkg: string;
    /** The imported binding name. */
    readonly binding: string;
    /** Stable identity `${pkg}.${binding}`, the per-finding merge discriminant. */
    readonly symbol: string;
    /** `exists` | `missing` | `unresolved`. */
    readonly status: string;
    /** For `exists`: `types` | `runtime`. Null otherwise. */
    readonly symbol_source: string | null;
    /** For `unresolved`: why the resolver could not decide. Null otherwise. */
    readonly reason: string | null;
    /**
     * Nominal score deduction attributable to this finding: `perMissing` for a
     * `missing` binding, else 0. Nominal because the report-level cap is applied
     * across all missing findings, not per finding.
     */
    readonly deduction: number;
};
declare const rowSchema: z.ZodObject<{
    mode: z.ZodString;
    task: z.ZodString;
    model_id: z.ZodString;
    pkg: z.ZodString;
    binding: z.ZodString;
    symbol: z.ZodString;
    status: z.ZodString;
    symbol_source: z.ZodNullable<z.ZodString>;
    reason: z.ZodNullable<z.ZodString>;
    deduction: z.ZodNumber;
    run_id: z.ZodString;
    report_id: z.ZodNullable<z.ZodString>;
    completed_at: z.ZodString;
    gs_uri: z.ZodString;
}, z.core.$strip>;
export declare const symbolFindings: import("../descriptor.js").FactTableDescriptor<import("../descriptor.js").FactRow>;
export { rowSchema as symbolFindingFactRowSchema };
