import TypeDef from './typedef.js'; import '../parser/nodes/nodes.js'; import '../core/definitions.js'; import './schema.js'; import './types/memberdef.js'; import './schema-types.js'; import '../core/positions.js'; interface TypeDefConstructor { new (type: string): TypeDef; types: string[]; } declare class TypedefRegistry { private static readonly typeDefMap; private static readonly typeNames; private static warnDuplicates; private static warnedDuplicateTypes; /** * Enable/disable console warnings on duplicate type registrations. * Default is disabled to avoid noise and performance overhead in hot paths/tests. */ static setWarnOnDuplicates(enable: boolean): void; /** * Registers TypeDef constructors for the specified types. * @param typeDefConstructors The TypeDef constructor classes */ static register(...typeDefConstructors: TypeDefConstructor[]): void; /** * Unregisters the specified type from the registry. * @param type The type name to unregister */ static unregister(type: string): void; /** * Gets the array of registered type names. */ static get types(): readonly string[]; /** * Returns the associated TypeDef object for the specified type. * @param type The registered type name * @throws {InternetObjectError} When the type is not registered */ static get(type: string): TypeDef; /** * Checks if the specified type is registered. * @param typeName The type name to check */ static isRegisteredType(typeName: string): boolean; /** * Clears all registered types. Primarily for testing. */ static clear(): void; /** * Gets the count of registered types. */ static get count(): number; } export { TypedefRegistry as default };