import { ComponentMetadata } from '../annotation'; import { Newable } from '../utils'; export declare const AOP_TAG = "AOP_TAG"; export declare const MethodBeforeAdvice: unique symbol; export declare const AfterReturningAdvice: unique symbol; export declare const AfterThrowsAdvice: unique symbol; export declare const AopProxyFactory: unique symbol; export declare const ClassFilter: unique symbol; export declare const MethodMatcher: unique symbol; export interface Advice { } export interface BeforeAdvice extends Advice { } export interface AfterAdvice extends Advice { } export interface MethodBeforeAdvice extends BeforeAdvice { before(method: string | number | symbol, args: any[], target: any): Promise; } export interface AfterReturningAdvice extends AfterAdvice { afterReturning(returnValue: any, method: string | number | symbol, args: any[], target: any): Promise; } export interface AfterThrowsAdvice extends AfterAdvice { afterThrows(error: any, method: string | number | symbol, args: any[], target: any): Promise; } export interface AopProxy { getProxy(): any; } export interface ProxyConfig { target: any; metadata: ComponentMetadata; } export interface AopProxyFactory { create(config: ProxyConfig): AopProxy; } export interface ClassFilter { matches(clazz: Newable, metadata: ComponentMetadata): boolean; } export interface MethodMatcher { matches(method: string | number | symbol, clazz: Newable, args: any[]): boolean; } //# sourceMappingURL=aop-protocol.d.ts.map