@promptbook/langtail
Version:
It's time for a paradigm shift. The future of software in plain English, French or Latin
40 lines (39 loc) • 995 B
TypeScript
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<TRegistered extends Registered> {
private readonly registerName;
private readonly storage;
constructor(registerName: string_name);
list(): ReadonlyArray<TRegistered>;
register(registered: TRegistered): Registration;
}