1 | import { interfaces } from "../interfaces/interfaces";
|
2 | declare type Prototype<T> = {
|
3 | [Property in keyof T]: T[Property] extends NewableFunction ? T[Property] : T[Property] | undefined;
|
4 | } & {
|
5 | constructor: NewableFunction;
|
6 | };
|
7 | interface ConstructorFunction<T = Record<string, unknown>> {
|
8 | new (...args: unknown[]): T;
|
9 | prototype: Prototype<T>;
|
10 | }
|
11 | export declare type DecoratorTarget<T = unknown> = ConstructorFunction<T> | Prototype<T>;
|
12 | declare function tagParameter(annotationTarget: DecoratorTarget, parameterName: string | symbol | undefined, parameterIndex: number, metadata: interfaces.MetadataOrMetadataArray): void;
|
13 | declare function tagProperty(annotationTarget: DecoratorTarget, propertyName: string | symbol, metadata: interfaces.MetadataOrMetadataArray): void;
|
14 | declare function createTaggedDecorator(metadata: interfaces.MetadataOrMetadataArray): <T>(target: DecoratorTarget, targetKey?: string | symbol | undefined, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T> | undefined) => void;
|
15 | declare function decorate(decorator: (DecoratorTarget | ParameterDecorator | MethodDecorator), target: any, parameterIndexOrProperty?: number | string): void;
|
16 | export { decorate, tagParameter, tagProperty, createTaggedDecorator };
|