import { ECSContext } from "../core/ecs"; export declare class Module { readonly definitionsByName: Record; private readonly definitionsById; protected readonly ctx: ECSContext; private factories; private registry; private readonly builtInDefinitions; constructor(ctx: ECSContext, initialFactories: Record R>); private hashDef; addDefinition(name: string, def: D, isBuiltIn?: boolean): void; registerType(name: string, factory: (params: any) => R): void; unregisterType(name: string): boolean; /** * Get all registered type names (factories) */ getRegisteredTypes(): string[]; hasDefinition(name: string): boolean; getDefinitionByName(name: string): D | undefined; isBuiltIn(name: string): boolean; /** * Mark an existing definition as built-in (for tracking runtime vs built-in definitions) */ markAsBuiltIn(name: string): void; /** * Get all runtime-registered definitions (excluding built-ins) */ getRuntimeDefinitions(): Array<{ name: string; definition: D; }>; /** * Get all built-in definitions that shipped with the engine */ getBuiltInDefinitions(): Array<{ name: string; definition: D; }>; resolve(defOrName: string | D): number; register(name: string, def: D): R; register(name: string, baseName: string, overrides: Partial): R; unregister(name: string): boolean; getDefinition(id: number): D | undefined; get(id: number): R; /** * Get the name of a definition by its ID (if it exists) */ getDefinitionName(id: number): string | undefined; /** * Serialize a definition as name + diff (delta from base if applicable) * Returns either a string (named reference) or full definition */ serializeDefinition(id: number, options?: { useDelta?: boolean; }): any; /** * Deep equality check for definitions */ private definitionsEqual; /** * Clear all registries and dispose resources * This prevents memory leaks by releasing THREE.js objects and other cached resources */ clear(): void; } //# sourceMappingURL=Module.d.ts.map