/**
 * The MIT License (MIT)
 * Copyright (c) Taketoshi Aono
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * @fileoverview
 * @author Taketoshi Aono
 */
declare type Proc<T> = (e?: T) => void;
/**
 * Exit async function gracefully.
 * @param {Function} cb Async function.
 * @param {Function} done The Mocha async test case exit callback.
 * @returns {Function} The function that is notify error to mocha.
 */
export declare const graceful: ((cb: (...args: any[]) => void, done: Proc<Error>, optCallback?: Proc<any> | undefined) => (...args: any[]) => void) & {
    /**
     * Run graceful function.
     * @param {Function} cb Async function.
     * @param {Function} done The Mocha async test case exit callback.
     * @returns {*} Function return value.
     */
    run: (cb: Proc<any>, done: Proc<Error>, optCallback?: Proc<any> | undefined) => void;
};
/**
 * Create function that exit async test case.
 * @param {Function} done The Mocha async test case exit callback.
 * @returns {Function} Function that exit async test case.
 */
export declare const nothing: (done: Proc<Error>, optCallback?: Proc<any> | undefined) => () => void;
/**
 * Create function that exit test case if error thrown.
 * @param {Function} cb Async function.
 * @param {Function} done The Mocha async test case exit callback.
 * @returns {Function} Function that exit async test case if error thrown.
 */
export declare const stopOnError: ((cb: (...args: any[]) => void, done: Proc<Error>, optCallback?: Proc<any> | undefined) => (...args: any[]) => void) & {
    run(cb: Proc<any>, done: Proc<any>, optCallback?: Proc<any> | undefined): void;
};
export declare class Joiner {
    private time;
    private cb;
    private current;
    constructor(time: any, cb: any);
    notify(): void;
}
export {};
