// Type definitions for q-retry // Project: https://github.com/vilic/q-retry // Definitions by: VILIC VANE // Definitions: https://github.com/borisyankov/DefinitelyTyped /// declare module Q { export interface IRetryOptions { limit?: number; interval?: number; maxInterval?: number; intervalMultiplier?: number; } export function retry(process: () => IPromise, onFail: (reason: any, retries: number) => void, limit: number): Promise; export function retry(process: () => IPromise, onFail: (reason: any, retries: number) => void, options?: IRetryOptions): Promise; export function retry(process: () => IPromise, limit: number): Promise; export function retry(process: () => IPromise, options?: IRetryOptions): Promise; export function retry(process: () => U, onFail: (reason: any, retries: number) => void, limit: number): Promise; export function retry(process: () => U, onFail: (reason: any, retries: number) => void, options?: IRetryOptions): Promise; export function retry(process: () => U, limit: number): Promise; export function retry(process: () => U, options?: IRetryOptions): Promise; interface Promise { retry(process: (value: T) => IPromise, onFail: (reason: any, retries: number) => void, limit: number): Promise; retry(process: (value: T) => IPromise, onFail: (reason: any, retries: number) => void, options?: IRetryOptions): Promise; retry(process: (value: T) => IPromise, limit: number): Promise; retry(process: (value: T) => IPromise, options?: IRetryOptions): Promise; retry(process: (value: T) => U, onFail: (reason: any, retries: number) => void, limit: number): Promise; retry(process: (value: T) => U, onFail: (reason: any, retries: number) => void, options?: IRetryOptions): Promise; retry(process: (value: T) => U, limit: number): Promise; retry(process: (value: T) => U, options?: IRetryOptions): Promise; } } declare module "q-retry" { export = Q; }