import { n as FrameSignature } from "./frame-report-DNxDAb1w.js"; //#region src/vite/discover.d.ts /** * The listening TCP ports in `/proc/net/tcp` (and `tcp6`) format. * * Linux-only and dependency-free ON PURPOSE: `lsof` and `ss` are routinely * absent from a slim container, and this has to work in the container a * vibe-coding service actually ships, not in a developer's laptop. */ declare function parseProcNetTcp(text: string): number[]; interface DiscoverDeps { /** Reads a proc file; returns null when it is not there (macOS, Windows). */ read(path: string): string | null; } /** * Ports worth asking, in the order worth asking them. * * Observed first — those are facts. The usual suspects after, because a * container that hides `/proc` should still find a vite server on 5173. */ declare function listeningPorts(deps?: Partial): Promise; //#endregion //#region src/vite/frame-endpoint.d.ts interface FrameHost { config?: { root?: string; }; middlewares: { use(path: string, handler: (req: FrameReq, res: FrameRes) => void): void; }; /** * Vite's HMR channel, which has moved twice. `ws` on v5, `hot` on v6+, and * since the Environment API the one that actually reaches the BROWSER is * `environments.client.hot` — on v8 the top-level `hot` still exists and * still accepts `send()` without error, it simply arrives nowhere. Every * candidate is used, because a silent no-op is the worst of the three. */ ws?: FrameChannel; hot?: FrameChannel; environments?: { client?: { hot?: FrameChannel; }; }; } interface FrameChannel { send(payload: { type: "custom"; event: string; data?: unknown; }): void; on(event: string, cb: (data: unknown) => void): void; } interface FrameRes { statusCode: number; setHeader(name: string, value: string): void; end(body?: string): void; } /** Connect strips the mount path off `url`; `originalUrl` keeps the query. */ interface FrameReq { url?: string; originalUrl?: string; } interface FrameEndpointOptions { /** Overridden in tests; defaults to the real clock. */ now?: () => number; timeoutMs?: number; /** * Remembered frames, by label. Lives in the dev server's MEMORY on purpose: * a baseline is only valid for the browser and the window that made it, so it * should die with the server rather than linger in the project as a file * nobody asked for. */ store?: Map; } declare function serveFrameEndpoints(host: FrameHost, version: string, opts?: FrameEndpointOptions): void; //#endregion //#region src/vite/options.d.ts /** * A plugin option the plugin does not know is a hard error, like every other * key this engine reads. * * Scene props have had `UNKNOWN_PROP` — "Valid props: […]" — since the first * milestone. A vite plugin's options had nothing: `incantoScenes({ * strictBehavior: true })` type-checked green, built green and did NOTHING, * because the scaffolded `tsconfig.json` never pointed the compiler at * `vite.config.ts` in the first place. * * That `include` is fixed too, but it cannot be the whole answer. TypeScript's * excess-property check only fires on a FRESH object literal — hoist the * options into a `const` and it passes again — and a `vite.config.js` is never * type-checked at all. This is the half that holds either way. */ declare function onlyKnownOptions(plugin: string, opts: object, known: readonly string[]): void; //#endregion //#region src/vite/static-inspect.d.ts interface StaticInspectHost extends FrameHost { /** Handle `/__incanto/pull` and `/__incanto/push`; returns false if not ours. */ handleInspect(req: FrameReq, res: FrameRes): boolean; /** The `