// @sourcemap: true // @target: es5 // @experimentaldecorators: true declare function ClassDecorator1(target: Function): void; declare function ClassDecorator2(x: number): (target: Function) => void; declare function PropertyDecorator1(target: Object, key: string | symbol, descriptor?: PropertyDescriptor): void; declare function PropertyDecorator2(x: number): (target: Object, key: string | symbol, descriptor?: PropertyDescriptor) => void; declare function ParameterDecorator1(target: Object, key: string | symbol, paramIndex: number): void; declare function ParameterDecorator2(x: number): (target: Object, key: string | symbol, paramIndex: number) => void; @ClassDecorator1 @ClassDecorator2(10) class Greeter { constructor( @ParameterDecorator1 @ParameterDecorator2(20) public greeting: string, @ParameterDecorator1 @ParameterDecorator2(30) ...b: string[]) { } @PropertyDecorator1 @PropertyDecorator2(40) greet() { return "