import { Type } from '@neoskop/annotation-factory'; import { Joinpoint } from './manager'; import { Property } from './metadata'; /** * @hidden */ export declare function createJoinpoint(fn: (this: any, target: Function, ...args: any[]) => any, pointcut: string, proto: any): Joinpoint; /** * @hidden */ export declare enum MODE { SETTER = 0, GETTER = 1 } /** * @hidden */ export declare function createPropertyJoinpoint(fn: (this: any, targets: { getter: Function; setter: Function; }, value?: any) => any, mode: MODE, pointcut: string, proto: any): void; /** * @hidden */ export declare function findPointcuts(cls: Type, selector: keyof T | string[] | RegExp): string[]; /** * @hidden */ export declare function findStaticPointcuts>(cls: T, selector: keyof T | string[] | RegExp): string[]; /** * @hidden */ export declare function toPointcuts(selector: Property): string[]; /** * @hidden */ export declare function createFilter(filter: keyof T | string[] | RegExp): (str: string) => boolean; /** * hidden */ export declare function unique(c: T, i: number, a: T[]): boolean; /** * hidden */ export declare type ArgumentTypes = T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D, arg4: infer E, arg5: infer F, arg6: infer G, arg7: infer H, arg8: infer I, arg9: infer J) => any ? [A, B, C, D, E, F, G, H, I, J] : T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D, arg4: infer E, arg5: infer F, arg6: infer G, arg7: infer H, arg8: infer I) => any ? [A, B, C, D, E, F, G, H, I] : T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D, arg4: infer E, arg5: infer F, arg6: infer G, arg7: infer H) => any ? [A, B, C, D, E, F, G, H] : T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D, arg4: infer E, arg5: infer F, arg6: infer G) => any ? [A, B, C, D, E, F, G] : T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D, arg4: infer E, arg5: infer F) => any ? [A, B, C, D, E, F] : T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D, arg4: infer E) => any ? [A, B, C, D, E] : T extends (arg0: infer A, arg1: infer B, arg2: infer C, arg3: infer D) => any ? [A, B, C, D] : T extends (arg0: infer A, arg1: infer B, arg2: infer C) => any ? [A, B, C] : T extends (arg0: infer A, arg1: infer B) => any ? [A, B] : T extends (arg0: infer A) => any ? [A] : T extends () => any ? [void] : any[]; /** * hidden */ export declare type ReturnType = T extends (...args: any[]) => infer R ? R : any;