import { type ManifestIssue } from './ability'; import { INSTALLED_INDEX, MODULES_DIR } from './paths'; import { type ResolvedPackage, type ResolvedPins, type WorldPins } from './resolve'; export { MODULES_DIR, INSTALLED_INDEX }; export declare const LOCKFILE = "helix.lock.json"; export declare const RUNTIME_MODULE = "helix.runtime.ts"; export declare const RUNTIME_DESCRIPTOR = "helix.runtime.json"; export declare const WORLD_MANIFEST_LOCATIONS: string[]; /** A v2 install-index entry: code from a (here local, root-absolute) base; clips from the CDN. */ export type InstalledEntry = { id: string; version: string; codeUrl: string; assetBaseUrl: string; }; export type WorldLock = { lockfileVersion: 1; systems: ResolvedPackage[]; abilities: ResolvedPackage[]; }; export type InstallWorldResult = { manifestPath: string; modulesDir: string; systems: Array<{ slug: string; version: string; }>; abilities: Array<{ slug: string; version: string; }>; /** true when --update re-resolved the catalog; false when the existing lock was replayed. */ reresolved: boolean; /** The hosted runtime URLs install wired into index.html + src/helix.runtime.ts (null if no system pinned); Rapier only when declared. */ runtime: { threeVersion: string; threeModuleUrl: string; transcoderPath: string; rapierVersion?: string; rapierModuleUrl?: string; } | null; /** How platform systems will be delivered when the published world starts. */ delivery: 'compatible' | 'pinned' | 'mixed' | 'legacy-bundled' | 'not-applicable'; }; export type InstallDeps = { resolve(pins: WorldPins): Promise; download(codeBaseUrl: string, files: string[], destDir: string): Promise; satisfies(version: string, normalizedRange: string): boolean; validateIndex(value: unknown): ManifestIssue[]; }; export type InstallWorldOptions = { apiUrl: string; update?: boolean; onProgress?: (msg: string) => void; deps?: InstallDeps; }; export declare function viteConfigExternalizesPlatformSystems(source: string): boolean; export declare function installWorld(worldDir: string, opts: InstallWorldOptions): Promise;