import { IContainer, Type, ObjectMap, ParamProviders } from '@ts-ioc/core'; import { Advices } from './advices'; import { AdviceMetadata } from './metadatas'; import { IAdvisor } from './IAdvisor'; /** * for global aop advisor. * * @export * @class Advisor */ export declare class Advisor implements IAdvisor { /** * aspects. * * @type {Map, ObjectMap>} * @memberof AspectManager */ aspects: Map, ObjectMap>; /** * aspect ioc containers. * * @protected * @type {Map, IContainer>} * @memberof Advisor */ protected aspectIocs: Map, IContainer>; /** * method advices. * * @type {Map} * @memberof AspectManager */ advices: Map; constructor(); /** * set advices. * * @param {string} key * @param {Advices} advices * @memberof Advisor */ setAdvices(key: string, advices: Advices): void; /** * get advices. * * @param {string} key * @returns * @memberof Advisor */ getAdvices(key: string): Advices; /** * has register advices or not. * * @param {Type} targetType * @returns {boolean} * @memberof Advisor */ hasRegisterAdvices(targetType: Type): boolean; /** * add aspect. * * @param {Type} aspect * @param {IContainer} raiseContainer * @memberof Advisor */ add(aspect: Type, raiseContainer: IContainer): void; getContainer(aspect: Type, defaultContainer?: IContainer): IContainer; /** * resolve aspect. * * @template T * @param {Type} aspect * @param {...ParamProviders[]} providers * @returns {T} * @memberof Advisor */ resolve(aspect: Type, ...providers: ParamProviders[]): T; static getClassAnnations(): any; }