/**
 * OwlCoda Native DeliveryAudit Tool
 *
 * Background — issue #6, second piece (private):
 *   Final summaries claimed completion ("已完成 / shipped / tests pass / 8
 *   场景全覆盖") but the working tree was inconsistent: untracked
 *   deliverables, unrelated residue mixed in, build artifacts not
 *   filtered, claimed files missing, version not bumped, etc.
 *
 *   This tool gives the model a structured "is what I just said
 *   actually true on disk?" reconciliation. Conversation.ts also
 *   auto-detects completion verbs and injects a `[Runtime delivery
 *   check]` notice nudging the model to call this tool before
 *   declaring done. The two together implement the
 *   "claim ↔ evidence consistency check" gate.
 *
 * What this tool DOES:
 *   - Reports git status broken into:
 *       touched-this-turn  (from taskState.contract.touchedPaths)
 *       new-untracked-deliverables (untracked + this turn touched)
 *       unrelated-residue  (tracked-modified or untracked but not touched)
 *       build-artifacts    (matched against ignored / dist-style patterns)
 *   - Cross-checks each `claims[i]` against simple heuristics:
 *       file-exists claims → fs.existsSync of named path
 *       version-shipped claims → package.json `version` field
 *       tests-pass claims → unverifiable from disk; surface as such
 *   - Surfaces a recommended next-step list (stage X, commit Y,
 *     investigate residue Z).
 *
 * What this tool does NOT do:
 *   - Run tests. The model can run them via TaskCreate / bash if
 *     they want fresh evidence. We don't shell out from the audit
 *     itself because (a) it'd be slow, (b) test runs aren't pure
 *     and (c) the audit is supposed to be readable telemetry, not
 *     a test runner.
 *   - Read test source for assertion-strength checks. That's
 *     0.13.45's lite-lint job.
 */
import type { NativeToolDef } from './types.js';
export interface DeliveryAuditInput {
    /**
     * Optional list of completion claims to verify. Each claim is a
     * free-text sentence (e.g., "added src/native/tools/foo.ts",
     * "shipped 0.13.44", "tests pass"). Heuristics try to extract
     * file paths and version strings; unstructured claims are reported
     * as `unverifiable` rather than passed/failed.
     */
    claims?: string[];
    /** Optional: explicit list of files that should now exist. */
    expectedFiles?: string[];
    /**
     * Optional: explicit test files to lint for vacuous assertions
     * (wide-coverage names backed only by `toBeDefined()` /
     * `toBeTruthy()` / `not.toBeNull()` / `not.toBeUndefined()`).
     * If omitted, the audit auto-lints any touched-this-turn path
     * matching `*.test.ts|tsx|js|jsx|mjs|cjs`. Pass an empty array
     * to skip the lint entirely.
     */
    lintTestFiles?: string[];
}
export declare function createDeliveryAuditTool(): NativeToolDef<DeliveryAuditInput>;
