import Invoker from './invoker'; interface AdviceArgs { advice: any; adviceMethod: string; } interface AdviceCtr { new (input: AdviceArgs): Advice; } declare const Advice_Position: readonly ["afterReturn", "afterThrow", "after", "around", "before"]; declare type ADVICE_POSITION = typeof Advice_Position[number]; export { AdviceCtr, Advice_Position, ADVICE_POSITION }; export default abstract class Advice { private aopObject; private adviceMethod; constructor({ advice, adviceMethod }: AdviceArgs); protected invokeAdvice(invoker: Invoker, ...args: any[]): any; abstract invoke(invoker: Invoker): any; abstract getPosition(): ADVICE_POSITION; }