import type { HostFramework } from "./framework.js"; /** * Bare dependency versions for telemetry (posthog-analytics design §3): * version strings are non-identifying, in line with what Astro/Nx collect * anonymously. Missing dependencies are omitted, never sent as placeholders. */ export interface DepVersions { frameworkVersion?: string; reactVersion?: string; zodVersion?: string; typescriptVersion?: string; } /** * The HOST's installed `ai` version (#478 short-term): @vendoai/vendo speaks * AI SDK v6 to the host's `ai` package (peer `ai >=6 <7`), but npm installs * the peer conflict anyway — so the version must be read from the TARGET * dir's node_modules, never the CLI's own dependency tree. Non-throwing: * an absent install or malformed metadata returns null (the missing- * dependency story belongs to the wiring checks, not this reader). */ export declare function installedAiVersion(root: string): Promise; /** * The HOST's installed `zod` version (FINDINGS F2): ai@6 imports the * `zod/v3` + `zod/v4` subpaths that arrive in zod 3.25, and the host's own * pin wins the installed tree — so the floor must be resolved from the * TARGET app's require context (hoisted workspaces keep it at the workspace * root), exactly like `installedAiVersion`. Non-throwing: an absent install * returns null (a host without zod resolves ai's own copy). */ export declare function installedZodVersion(root: string): Promise; /** Resolve the package the way the HOST RUNTIME does — walking the app's * node_modules chain upward, node's own resolution order for a bare * specifier — so hoisted workspace installs (the package at the workspace * root, the app nested with no node_modules of its own) are seen exactly * where `ai` sees them at runtime. Never a fixed path. A direct manifest * read rather than require.resolve, deliberately: exports maps may hide * ./package.json, and in-process resolver patches (test runners, loaders) * must not change what we report about the host's tree. */ export declare function installedVersion(root: string, name: string): Promise; /** * Read the host project's dependency versions (deps + devDeps) for telemetry. * Non-throwing: a missing or malformed package.json returns {}. */ export declare function detectDepVersions(root: string, framework: HostFramework | "custom"): Promise;