export type DelayFunction<T> = (value: T) => Promise<T>;
/**
 * Delay between the promise chain.
 *
 * @return {Function<T>}
 * A value which pass through within a promise
 *
 * @example
 * Promise.resolve(3)
 *   .then(delay(300))
 *   .then(doSomething)
 * // return 3 in a promise after delay 300 ms
 */
export default function delay<T>(millisecond: number): DelayFunction<T>;
