// Type definitions for lodash-decorators 1.0.5 // Project: https://github.com/steelsojka/lodash-decorators // Definitions by: Qubo // Definitions: https://github.com/borisyankov/DefinitelyTyped /// declare module "lodash-decorators" { // Originally copied from ../node_modules/typescript/lib/lib.es6.d.ts export interface ClassDecorator { (target: TFunction): TFunction|void; } export interface PropertyDecorator { (target: Object, propertyKey: string | symbol): void; } export interface MethodDecorator { (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor | void; } export interface ParameterDecorator { (target: Object, propertyKey: string | symbol, parameterIndex: number): void; } export interface TypedMethodDecorator { (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor | void; } export interface MethodDecoratorWithAccessor extends MethodDecorator, Accessor { } export interface Accessor { set: T; get: T; proto: T; } export interface DebounceDecorator { (wait: number, options?: _.DebounceSettings): MethodDecorator; } export interface ThrottleDecorator { (wait: number, options?: _.ThrottleSettings): MethodDecorator; } export interface MemoizeDecorator { (resolver?: Function): MethodDecorator; } export interface AfterDecorator { (n: number): MethodDecorator; } export interface BeforeDecorator { (n: number): MethodDecorator; } export interface AryDecorator { (n: number): MethodDecorator; } export interface CurryDecorator { (arity?: number): MethodDecorator; } export interface CurryRightDecorator { (arity?: number): MethodDecorator; } export interface RestParamDecorator { (start?: number): MethodDecorator; } export interface PartialDecorator { (func: Function|string, ...args: any[]): MethodDecorator; } export interface WrapDecorator { (wrapper: ((func: Function, ...args: any[]) => any)|string): MethodDecorator; } export interface ComposeDecorator { (...funcs: (Function|string)[]): MethodDecorator; } export interface DelayDecorator { (wait: number, ...args: any[]): MethodDecorator; } export interface DeferDecorator { (...args: any[]): MethodDecorator; } export interface BindDecorator { (): TypedMethodDecorator<(() => R)>; (param1?: T1): TypedMethodDecorator<((param1: T1) => R)>; (param1?: T1, param2?: T2): TypedMethodDecorator<((param1: T1, param2: T2) => R)>; (param1?: T1, param2?: T2, param3?: T3): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3) => R)>; (param1?: T1, param2?: T2, param3?: T3, param4?: T4): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3, param4: T4) => R)>; (param1?: T1, param2?: T2, param3?: T3, param4?: T4, param5?: T5): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3, param4: T4, param5: T5) => R)>; (param1?: T1, param2?: T2, param3?: T3, param4?: T4, param5?: T5, param6?: T6): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3, param4: T4, param5: T5, param6: T6) => R)>; } export interface BindAllDecorator { (...methodNames: string[]): ClassDecorator; } export interface ModArgsDecorator { (...transforms: Function[]): MethodDecorator; } export const debounce: DebounceDecorator & Accessor; export const Debounce: DebounceDecorator & Accessor; export const throttle: ThrottleDecorator & Accessor; export const Throttle: ThrottleDecorator & Accessor; export const memoize: MemoizeDecorator & Accessor; export const Memoize: MemoizeDecorator & Accessor; export const after: AfterDecorator & Accessor; export const After: AfterDecorator & Accessor; export const before: BeforeDecorator & Accessor; export const Before: BeforeDecorator & Accessor; export const ary: AryDecorator & Accessor; export const Ary: AryDecorator & Accessor; export const curry: CurryDecorator & Accessor; export const Curry: CurryDecorator & Accessor; export const curryRight: CurryRightDecorator & Accessor; export const CurryRight: CurryRightDecorator & Accessor; export const restParam: RestParamDecorator & Accessor; export const RestParam: RestParamDecorator & Accessor; export const partial: PartialDecorator & Accessor; export const Partial: PartialDecorator & Accessor; export const partialRight: PartialDecorator & Accessor; export const PartialRight: PartialDecorator & Accessor; export const wrap: WrapDecorator & Accessor; export const Wrap: WrapDecorator & Accessor; export const compose: ComposeDecorator & Accessor; export const Compose: ComposeDecorator & Accessor; export const flow: ComposeDecorator & Accessor; export const Flow: ComposeDecorator & Accessor; export const flowRight: ComposeDecorator & Accessor; export const FlowRight: ComposeDecorator & Accessor; export const backflow: ComposeDecorator & Accessor; export const Backflow: ComposeDecorator & Accessor; export const delay: DelayDecorator & Accessor; export const Delay: DelayDecorator & Accessor; export const defer: DeferDecorator & Accessor; export const Defer: DeferDecorator & Accessor; export const bind: BindDecorator & Accessor; export const Bind: BindDecorator & Accessor; export const bindAll: BindAllDecorator; export const BindAll: BindAllDecorator; export const modArgs: ModArgsDecorator & Accessor; export const ModArgs: ModArgsDecorator & Accessor; export const once: MethodDecoratorWithAccessor; export const Once: MethodDecoratorWithAccessor; export const spread: MethodDecoratorWithAccessor; export const Spread: MethodDecoratorWithAccessor; export const rearg: MethodDecoratorWithAccessor; export const Rearg: MethodDecoratorWithAccessor; export const negate: MethodDecoratorWithAccessor; export const Negate: MethodDecoratorWithAccessor; export const tap: MethodDecoratorWithAccessor; export const Tap: MethodDecoratorWithAccessor; } declare module "lodash-decorators/extensions" { // Originally copied from ../node_modules/typescript/lib/lib.es6.d.ts export interface ClassDecorator { (target: TFunction): TFunction|void; } export interface PropertyDecorator { (target: Object, propertyKey: string | symbol): void; } export interface MethodDecorator { (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor | void; } export interface ParameterDecorator { (target: Object, propertyKey: string | symbol, parameterIndex: number): void; } export interface DeprecatedDecorator extends MethodDecorator, ClassDecorator { methodAction(fn: Function & { name: string }): void; } export const deprecated: DeprecatedDecorator; export const Deprecated: DeprecatedDecorator; export const writable: (writable?: boolean) => MethodDecorator; export const Writable: (writable?: boolean) => MethodDecorator; export const configurable: (configurable?: boolean) => MethodDecorator; export const Configurable: (configurable?: boolean) => MethodDecorator; export const returnsArg: (index?: number) => MethodDecorator; export const ReturnsArg: (index?: number) => MethodDecorator; export const enumerable: (enumerable?: boolean) => MethodDecorator; export const Enumerable: (enumerable?: boolean) => MethodDecorator; export const nonenumerable: MethodDecorator; export const Nonenumerable: MethodDecorator; export const nonconfigurable: MethodDecorator; export const Nonconfigurable: MethodDecorator; export const readonly: MethodDecorator; export const Readonly: MethodDecorator; } declare module "lodash-decorators/validate" { // Originally copied from ../node_modules/typescript/lib/lib.es6.d.ts export interface ClassDecorator { (target: TFunction): TFunction|void; } export interface PropertyDecorator { (target: Object, propertyKey: string | symbol): void; } export interface MethodDecorator { (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor | void; } export interface ParameterDecorator { (target: Object, propertyKey: string | symbol, parameterIndex: number): void; } export interface TypedMethodDecorator { (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor | void; } export interface Predicate { (t: T): boolean; } type Predicates = Predicate|Predicate[]; export interface ValidateDecorator { (p1: Predicates): TypedMethodDecorator<((param1: T1) => R)>; (p1: Predicates, p2?: Predicates): TypedMethodDecorator<((param1: T1, param2: T2) => R)>; (p1: Predicates, p2?: Predicates, p3?: Predicates): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3) => R)>; (p1: Predicates, p2?: Predicates, p3?: Predicates, p4?: Predicates): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3, param4: T4) => R)>; (p1: Predicates, p2?: Predicates, p3?: Predicates, p4?: Predicates, p5?: Predicates): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3, param4: T4, param5: T5) => R)>; (p1: Predicates, p2?: Predicates, p3?: Predicates, p4?: Predicates, p5?: Predicates, p6?: Predicates): TypedMethodDecorator<((param1: T1, param2: T2, param3: T3, param4: T4, param5: T5, param6: T6) => R)>; } export interface ValidateReturnDecorator { (p1: Predicates): TypedMethodDecorator<((...args: any[]) => R)>; } export const validate: ValidateDecorator; export const Validate: ValidateDecorator; export const validateReturn: ValidateReturnDecorator; export const ValidateReturn: ValidateReturnDecorator; }