export = AssertWrapper;
/**
 * This wrapper take methods from default assert library to give access to use it from I object.
 * This wrapper allow us to print asserts as steps in output. Also we can expand this lib with different methods and
 * other assertion libraries.
 */
declare class AssertWrapper {
    /**
     * https://nodejs.org/api/assert.html#assert_assert_value_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assert(actual: any, expected: any, message?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_deepequal_actual_expected_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assertDeepEqual(actual: any, expected: any, message?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_deepstrictequal_actual_expected_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assertDeepStrictEqual(actual: any, expected: any, message?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_equal_actual_expected_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assertEqual(actual: any, expected: any, message?: string): any;
    /**
     *
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @param {string} [operator]
     * @returns {*}
     */
    assertFail(actual: any, expected: any, message?: string, operator?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_fail_message
     * @param {*} value
     * @param {string} [message]
     * @returns {*}
     */
    assertOk(value: any, message?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_notequal_actual_expected_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assertNotEqual(actual: any, expected: any, message?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_notdeepstrictequal_actual_expected_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assertNotDeepStrictEqual(actual: any, expected: any, message?: string): any;
    /**
     * https://nodejs.org/api/assert.html#assert_assert_notdeepequal_actual_expected_message
     * @param {*} actual
     * @param {*} expected
     * @param {string} [message]
     * @returns {*}
     */
    assertNotDeepEqual(actual: any, expected: any, message?: string): any;
    /**
     * Custom Asserts
     */
    /**
     * Compare expected and actual status code.
     * @param {*} actual
     * @param {*} expected
     * @returns {*}
     */
    assertStatusCode(actual: any, expected: any): any;
    /**
     * Expect that body is not empty
     * @param {*} body
     * @param {string} message
     * @returns {*}
     */
    assertBodyIsNotEmpty(body: any): any;
    /**
     * Check that list of keys are in object
     * @param {string} keys
     * @param {object} obj
     */
    assertKeyInObjectExists(keys: string, obj: object): void;
    /**
     * Check that list of keys are not in object
     * @param {string} keys
     * @param {object} obj
     * @param {string} message
     * @returns {*}
     */
    assertKeyInObjectNotExists(keys: string, obj: object): any;
    /**
     * Check that each element in array match predicate
     * @param {array} items
     * @param {function} predicate
     * @param {string} message
     */
    assertEach(items: any[], predicate: Function, message: string): void;
    /**
     * Check that array has at least one element that match predicate
     * @param {array} items
     * @param {function} predicate
     * @param {string} message
     */
    assertExists(items: any[], predicate: Function, message: string): void;
    /**
     * Check that string contains substring
     * @param {string} actual
     * @param {string} substring
     */
    assertStringIncludes(actual: string, substring: string): void;
}
