import type { DoctorRun } from "./doctor-report.js"; export declare function checkConfigFiles(run: DoctorRun): Promise; /** The bundler seam a Next install lives or dies on (NEXT_SERVER_EXTERNALS): * without @vendoai/vendo on the list Next bundles it into the server chunk, the * checker's esbuild import becomes a bare runtime resolve from the app root — * where pnpm never hoists esbuild — and every generated screen fails its checks * while the app itself looks fine. `vendo init` writes the line; a host whose * config it could not read, or that never ran init, lands here. */ export declare function checkNextServerExternals(run: DoctorRun): Promise; /** The static twin of the store's boot warning: the PGlite default writes * under the project root, so a root on ephemeral disk means every user's app * and data is deleted by the next redeploy. A platform marker is evidence on * its own — the wipe is coming, and warning BEFORE the first user writes is * the whole point. A tmp path additionally needs a real database to be sitting * there (PG_VERSION, the file initdb writes), because a scratch checkout under * /tmp is what doctor sees on a laptop and a false warning on every local run * is worse than no warning. */ export declare function checkStorePersistence(run: DoctorRun): Promise; /** The drop door's own line on the itinerary: a deployment now has a place a * user's files LIVE, and the two facts an operator needs about it are what * bounds one upload and where the bytes end up. Both are readable without * touching the deployment — doctor makes no requests — because the cap is a * constant and the store is chosen by the same key `checkStorePersistence` * reads. A wired `files:` adapter is invisible from here for the reason stated * there: no doctor check can see a programmatic override, and the boot block's * own `files` row names it at runtime. */ export declare function checkUserFiles(run: DoctorRun): Promise; /** Spec 2026-08-06 §B1 — the deployment's path prefix has exactly one home: * VENDO_BASE_URL. A spec that declares a DIFFERENT relative server mount is the * #914 shape by another route: every page renders and every tool call 404s. * An UNSET base URL is that same disagreement, and the posture it actually * bites in: with no base URL the wire learns the bare request ORIGIN * (`onRequestOrigin`), so a prefix-free stored path lands one prefix short. */ export declare function checkMountAgreement(run: DoctorRun): Promise; /** Per-surface OWNERSHIP: for each content surface, is the local file the * source of truth, or is it unset on disk? A value passed to createVendo in * code wins over the file and is not observable here. */ export declare function checkSurfaceOwnership(run: DoctorRun): Promise; /** Models spec 2026-07-22 — exactly two honest model facts, no network: whether * the key this install's own wiring reads is set, and any active VENDO_MODEL_* * pins. Deliberately NO role/alias table: on the Cloud rung the family names * map to concrete models SERVER-SIDE, so the client would only be guessing. */ export declare function checkModelResolution(run: DoctorRun): Promise; /** The core promise, statically checkable: does the agent have any HOST * tool it may actually call? All-disabled is an explicit misconfiguration * (fail); an empty extraction is a strong warning — connector-only hosts * are legitimate, but a fresh install landing here means extraction found * nothing user-facing (field case: an infra product whose surface was all * internal endpoints ended with tools: [] and a silently useless agent). */ export declare function checkToolCatalog(run: DoctorRun): Promise;