/**
 *
 * @param {boolean} t
 * @param {string} [m]
 */
export function assert(t: boolean, m?: string): void;
export namespace assert {
    /**
     * @template T
     * @param {T} value
     * @param {Object<T>} enumerable
     * @param {string} [name]
     */
    function _enum<T>(value: T, enumerable: any, name?: string): void;
    export { _enum as enum };
    export { notEqual };
    export { notOk };
    export { equal };
    export { logicalEquals as logicalyEqual };
    export { assert as ok };
    export { greaterThan };
    export { greaterThanOrEqual };
    export { lessThan };
    export { lessThanOrEqual };
    export { typeOf };
    export { arrayHas };
    export { arrayHasNo };
    export { arrayEqual };
    /**
     *
     * @param {*} value
     * @param {Class} klass
     * @param {string} [value_name]
     * @param {string} [class_name]
     */
    export function isInstanceOf(value: any, klass: Class, value_name?: string, class_name?: string): void;
    /**
     *
     * @param {number|*} value
     * @param {string} [name]
     */
    export function isNumber(value: number | any, name?: string): void;
    /**
     *
     * @param {string|*} value
     * @param {string} [name]
     */
    export function isString(value: string | any, name?: string): void;
    /**
     *
     * @param {boolean|*} value
     * @param {string} [name]
     */
    export function isBoolean(value: boolean | any, name?: string): void;
    /**
     *
     * @param {function|*} value
     * @param {string} [name]
     */
    export function isFunction(value: Function | any, name?: string): void;
    /**
     *
     * @param {Object|*} value
     * @param {string} [name]
     */
    export function isObject(value: any | any, name?: string): void;
    /**
     *
     * @param {number|*} value
     * @param {string} [name]
     */
    export function isInteger(value: number | any, name?: string): void;
    /**
     *
     * @param {number|*} value
     * @param {string} [name]
     */
    export function isNonNegativeInteger(value: number | any, name?: string): void;
    /**
     * @template T
     * @param {T[]} value
     * @param {string} name
     */
    export function isArray<T>(value: T[], name?: string): void;
    /**
     * @template T
     * @param {ArrayLike<T>|T[]|Uint32Array|Float32Array} value
     * @param {string} name
     */
    export function isArrayLike<T>(value: ArrayLike<T> | T[] | Uint32Array | Float32Array, name?: string): void;
    /**
     * Check for value !== undefined, throws exception if value is undefined
     * @param {*} value
     * @param {String} [name]
     */
    export function defined(value: any, name?: string): void;
    /**
     * Checks for value === undefined, throws exception if value is NOT undefined
     * @param {*} value
     * @param {String} [name]
     */
    export function undefined(value: any, name?: string): void;
    /**
     *
     * @param {*} value
     * @param {String} [name]
     */
    export function isNull(value: any, name?: string): void;
    /**
     *
     * @param {*} value
     * @param {String} [name]
     */
    export function notNull(value: any, name?: string): void;
    /**
     *
     * @param {number} value
     * @param {string} name
     */
    export function notNaN(value: number, name?: string): void;
    /**
     * Is given number finite?
     * Will trigger if number is infinite, i.e. fails the `Number.isFinite` test
     * @param {number} value
     * @param {string} [name] optional name for the value being checked
     */
    export function isFinite(value: number, name?: string): void;
    import isFiniteNumber = isFinite;
    export { isFiniteNumber };
    /**
     * @template T
     * @param {T} value
     * @param {string} name
     * @param {Matcher<T>} matcher
     */
    export function that<T>(value: T, name: string, matcher: Matcher<T>): void;
}
/**
 * @template T
 * @param {T} a
 * @param {T} b
 * @param {string} [m]
 */
declare function notEqual<T>(a: T, b: T, m?: string): void;
/**
 *
 * @param {boolean} t
 * @param {string} [m]
 */
declare function notOk(t: boolean, m?: string): void;
/**
 * @template T
 * @param {T} a
 * @param {T} b
 * @param {string} [m]
 */
declare function equal<T>(a: T, b: T, m?: string): void;
/**
 *
 * @param {object} a
 * @param {object} b
 * @param {string} [m]
 */
declare function logicalEquals(a: object, b: object, m?: string): void;
/**
 *
 * @param {number} a
 * @param {number} b
 * @param {string} [m]
 */
declare function greaterThan(a: number, b: number, m?: string): void;
/**
 *
 * @param {number} a
 * @param {number} b
 * @param {string} [m]
 */
declare function greaterThanOrEqual(a: number, b: number, m?: string): void;
/**
 *
 * @param {number} a
 * @param {number} b
 * @param {string} [m]
 */
declare function lessThan(a: number, b: number, m?: string): void;
/**
 *
 * @param {number} a
 * @param {number} b
 * @param {string} [m]
 */
declare function lessThanOrEqual(a: number, b: number, m?: string): void;
/**
 *
 * @param {*} value
 * @param {string} type
 * @param {string} valueName
 */
declare function typeOf(value: any, type: string, valueName?: string): void;
/**
 * @template T
 * @param {T[]} haystack
 * @param {T} needle
 * @param {string} [message]
 */
declare function arrayHas<T>(haystack: T[], needle: T, message?: string): void;
/**
 * @template T
 * @param {T[]} haystack
 * @param {T} needle
 * @param {string} [message]
 */
declare function arrayHasNo<T>(haystack: T[], needle: T, message?: string): void;
/**
 * @template T
 * @param {T[]|ArrayLike<T>|Float32Array|Int32Array} a
 * @param {T[]|ArrayLike<T>|Float32Array|Int32Array} b
 * @param {string} [message]
 */
declare function arrayEqual<T>(a: T[] | ArrayLike<T> | Float32Array | Int32Array, b: T[] | ArrayLike<T> | Float32Array | Int32Array, message?: string): void;
export {};
//# sourceMappingURL=assert.d.ts.map