declare type ClassDecorator =
(target: TFunction) => TFunction | void;
declare type PropertyDecorator =
(target: Object, propertyKey: string | symbol) => void;
declare type MethodDecorator =
( target: Object,
propertyKey: string | symbol,
descriptor: TypedPropertyDescriptor)=> TypedPropertyDescriptor | void;
declare type ParameterDecorator =
(target: Object, propertyKey: string | symbol, parameterIndex: number) => void;