import 'reflect-metadata'; /** * Gets the Decorator strings from the shell strings on the fly */ export declare function getDecoratorStrings(): { Deprecated: { messageFormat: string; alternateSignatureFormat: string; }; Obsolete: { messageFormat: string; alternateSignatureFormat: string; }; }; /** * Describes a function used to modify an instance of a class before its constructor is called */ export declare type InstanceModifierFunction = (instance: any, originalConstructor: TFunction, ...args: any[]) => void; /** * Describes a function used to modify an instance of a class before its constructor is called */ export declare type ClassModifierFunction = (newConstructor: TFunction, originalConstructor: TFunction) => void; /** * Universal Decorator Options */ export interface UniversalDecoratorOptions { /** * The name of this decorator */ name: string; /** * The decorator to use if a class decorator is needed */ classDecorator?: ClassDecorator; /** * The decorator to use if a property decorator is needed */ propertyDecorator?: PropertyDecorator; /** * The decorator to use if a accessor decorator is needed */ accessorDecorator?: MethodDecorator; /** * The decorator to use if a method decorator is needed */ methodDecorator?: MethodDecorator; /** * The decorator to use if a parameter decorator is needed */ parameterDecorator?: ParameterDecorator; } /** * Generic definition for any Decorator type */ export declare type Decorator = ClassDecorator | PropertyDecorator | MethodDecorator | ParameterDecorator; /** * Enables the creation of a decorator that in turn can be used for any decorator type provided in the options * @param options The options for this decorator */ export declare function createUniversalDecorator(options: UniversalDecoratorOptions): any;