import type { ExtractedTool } from "../actions/index.js"; import { type Principal } from "../core/index.js"; import { type RouteEntry } from "./shared.js"; export declare const DOCTOR_ACT_AS_PRINCIPAL: Principal; export declare const DOCTOR_ACT_AS_APP_ID: "app_vendo_doctor"; export declare const doctorPresentTool: ExtractedTool; export declare const doctorActAsTool: ExtractedTool; /** The one doctor route mounted in EVERY environment (09-vendo §2 install-dx wave 1.1): unlike the probes below it reports a static composition fact (is VENDO_BASE_URL set?) revealing no secret material, and the environment it exists to warn about is production — the very one the probe surface is closed in. Kept as its own group so the mounting rule is visible at the route table rather than buried in a gate's ordering. */ export declare const doctorBaseUrlRoutes: RouteEntry[]; /** The two POST probes make a same-origin HOST CALL during their own dispatch: each doctor executor runs a probe tool whose route binding points at the doctor echo path on the learned base (doctorPresentTool / doctorActAsTool above), so the base must be learned at handler ENTRY, before the handler runs (`learnsOriginAtEntry`, shared.ts). Marked route-by-route rather than by method, because a method is not the tell: plenty of method-specific routes fall through to a 404. */ /** The PROBE surface — a composition that did not say it is development never gets these routes at all (server.ts mounts the group behind `deps.development`). Mounting is the only thing standing between them and an unauthenticated caller: none takes a principal, and POST `/doctor/act-as` makes the composition mint host actAs material on demand. The gate this replaced was a per-request `NODE_ENV === "production"` refusal, which answers "not production" for an unset NODE_ENV and on every runtime with no `process` global. */ export declare const doctorRoutes: RouteEntry[];