import { type IDestroyable } from 'destroyable'; import type { string_name } from '../types/typeAliases'; import type { TODO_string } from './organization/TODO_string'; /** * @@@ */ export type Registered = { /** * @@@ */ readonly packageName: TODO_string; /** * @@@ */ readonly className: TODO_string; }; /** * @@@ */ export type Registration = Registered & IDestroyable & { /** * @@@ */ readonly registerName: string_name; }; /** * Register is @@@ * * Note: `$` is used to indicate that this function is not a pure function - it accesses and adds variables in global scope. * * @private internal utility, exported are only signleton instances of this class */ export declare class $Register { private readonly registerName; private readonly storage; constructor(registerName: string_name); list(): ReadonlyArray; register(registered: TRegistered): Registration; }