import { Injector } from './injector'; export interface ClassAnnotation { paramTypes: any[]; metadata: any; } export interface ParamAnnotation { propertyKey: string | symbol; parameterIndex: number; metadata: any; } export interface PropertyDecoratorContextCallback { (instance: any, propertyName: string | symbol, token: any, injector: Injector): void; } export interface PropertyAnnotation { injectToken: any; propertyKey: string | symbol; contextCallback: PropertyDecoratorContextCallback; } export interface MethodAnnotation { methodName: string | symbol; params: any[]; } /** * 用于保存 class 的元数据 */ export declare class Annotations { private classes; private props; private methods; private params; setClassMetadata(token: any, params: ClassAnnotation): void; getClassMetadata(token: any): ClassAnnotation; getClassMetadataKeys(): any[]; pushParamMetadata(token: any, params: ParamAnnotation): void; getParamMetadata(token: any): ParamAnnotation[]; getParamMetadataKeys(): any[]; getPropMetadataKeys(): any[]; pushPropMetadata(token: any, params: PropertyAnnotation): void; getPropMetadata(token: any): PropertyAnnotation[]; pushMethodMetadata(token: any, params: MethodAnnotation): void; getMethodMetadata(token: any): MethodAnnotation[]; }