import { Class } from '../util/Class'; import { Attribute, ManagedType } from '../metamodel'; import type { Managed } from './Managed'; export declare class Enhancer { /** * @param superClass * @return typeConstructor */ createProxy(superClass: Class): Class; /** * @param typeConstructor * @returns type the managed type metadata for this class */ static getBaqendType(typeConstructor: Class | Function): ManagedType | null; /** * @param typeConstructor * @return */ static getIdentifier(typeConstructor: Class | Function): string | null; /** * @param typeConstructor * @param identifier */ static setIdentifier(typeConstructor: Class, identifier: string): void; /** * @param type * @param typeConstructor */ enhance(type: ManagedType, typeConstructor: Class): void; /** * Enhance the prototype of the type * @param proto * @param type */ enhancePrototype(proto: T, type: ManagedType): void; /** * @param proto * @param attribute */ enhanceProperty(proto: T, attribute: Attribute): void; }