import { METADATA_TYPE } from './Constants'; import { IClassRef } from '../api/IClassRef'; import { IEntityRef } from '../api/IEntityRef'; import { IPropertyRef } from '../api/IPropertyRef'; import { IBuildOptions } from '../api/IBuildOptions'; import { AbstractRef } from './AbstractRef'; /** * Reflective reference to a class function * * There can exist multiple ClassRef depending of context for a single class function. * The context is defined by the lookup registry. * It can be also a placeholder, for a dummy or later loaded class. * * This is a default implementation for IClassRef * class can be in different namespaces */ export declare class ClassRef extends AbstractRef implements IClassRef { static __inc: number; private readonly idx; /** * Original reference to the class function or the given class name as string */ originalValue: string | Function; private _cacheEntity; private _isPlaceholder; private _isAnonymous; extends: IClassRef[]; constructor(klass: string | Function, namespace?: string); isPlaceholder(): boolean; isAnonymous(): boolean; getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef; static getClassName(k: any): any; updateClass(cls: Function): void; get className(): string; get storingName(): string; set storingName(v: string); /** * Check if name is passed by options */ hasName(): boolean; /** * Return the namespace for/of this class */ getNamespace(): string; /** * TODO implement * * @param namespace */ switchNamespace(namespace: string): void; isOf(instance: any): boolean; get machineName(): string; getClass(create?: boolean): Function; static find(klass: string | Function, namespace?: string): ClassRef; /** * get all class refs for some class name * * @param klass */ static getAllByClassName(klass: any): IClassRef[]; /** * filter function for classrefs * * @param klass */ static filter(fn: (c: IClassRef) => boolean): IClassRef[]; static checkIfFunctionCallback(klass: string | Function): string | Function; /** * check if class reference already exists for given string or Function, if not create a new one * * @param klass * @param namespace * @param resolve */ static get(klass: string | Function, namespace?: string, options?: boolean | { resolve?: boolean; checkNamespace?: boolean; }): ClassRef; /** * Create a class ref. * * @param klass * @param namespace */ static createRef(klass: Function | string, namespace?: string): ClassRef; /** * return global class reference * * @param klass * @param resolve */ static getGlobal(klass: string | Function, resolve?: boolean): ClassRef; getRegistry(): import("..").ILookupRegistry; getEntityRef(): IEntityRef; hasEntityRef(): boolean; create(addinfo?: boolean): T; new(addinfo?: boolean): T; getPropertyRefs(): IPropertyRef[]; getPropertyRef(name: string): IPropertyRef; id(): string; build(data: any, options?: IBuildOptions): T; /** * Return base inherited class for the underlying class * ``` * class X exnteds Y { } * ``` * Y would be returned. * */ getExtend(): IClassRef; /** * Return all inherited classes for underlying class. Mostly added manually. * */ getExtends(): IClassRef[]; /** * Append extend class ref. * @param ref */ addExtend(ref: IClassRef): IClassRef; }