export interface CollectedUrls { /** Every absolute URL to vendor. */ urls: Set; /** * Base-URL constants the engine concatenates file names onto (`${base}/${file}`). Rewriting * these in the bundle makes runtime-constructed URLs resolve into the mirrored vendor tree, * which no exact-URL map entry could cover. */ bases: Set; /** Creator-facing lines about what was (or could not be) collected. */ notes: string[]; } /** Walk any JSON value, collecting remote-URL strings outside the deny-listed fields. */ export declare function deepWalkUrls(value: unknown, out: Set): void; /** The same compiled-code .glb scan the standalone lane runs, over the pro project's dist. */ export declare function scanCompiledCodeUrls(compiledCode: string): Set; /** All compiled game JS under dist/src/work, concatenated — for reference scans. */ export declare function readCompiledGameCode(root: string): string; interface AnimationEntry { file: string; /** Absolute URL overriding `/` — the capture-backed default locomotion uses it. */ url?: string; motionId: string; } interface WeaponAnimationEntry { url: string; motionId: string; } /** The shape of `animationAssets` this collector relies on — structural, checked at runtime. */ export interface AnimationAssetsData { activeLibrary: 'cdn' | 'generated'; animationBaseUrl: string; generatedAnimationBaseUrl: string; animalBaseUrl: string; voxelAnimalBaseUrl: string; voxelFishBaseUrl: string; characterUrls: { default: string; defaultFallback: string; }; coreAnimations: AnimationEntry[]; generatedAnimations: AnimationEntry[]; meleeWeaponAnimations: WeaponAnimationEntry[]; generatedMeleeWeaponAnimations: AnimationEntry[]; generatedRangedWeaponAnimations: AnimationEntry[]; generatedDirectionalAnimations: AnimationEntry[]; generatedPostureAnimations: AnimationEntry[]; animalSkeletons: Record; } /** * Import the vendored engine's compiled AnimationAssets — a pure data module with no imports, * which is what makes this safe from plain node. Null (with the caller noting it) when the * engine predates the module or the shape moved: the record pass still catches whatever the * running game actually fetches. */ export declare function loadAnimationAssets(root: string): Promise; interface WorldDataShape { worldProfileData?: { hasPlayerCharacter?: unknown; animals?: unknown; }; } /** * The built-in animation URLs this game can load. The ACTIVE library ships whole — its optional * packs (melee/ranged/directional/posture) are loaded on demand by engine systems whose names * game code never contains, so reference-scanning cannot bound them. The inactive library ships * only clips the compiled game code names (`getBuiltinAnimationDef` resolves ids from either). */ export declare function collectAnimationUrls(assets: AnimationAssetsData, worldData: WorldDataShape, compiledCode: string): { urls: Set; bases: Set; }; /** The full §4b collection: deep walk + compiled-code scan + built-in animation surface. */ export declare function collectUrls(root: string): Promise; export {};