/** * Assert that the arguments constitute a valid range, in which * `min < max`, and, if present, `min <= value && value <= max`. * * @param min the lower bound of the range (inclusive) * @param max the upper bound of the range (inclusive) * @param value the optional value * @throws a {@link RangeError} when range or value is invalid */ export declare function assertValidRange(min: number, max: number, value?: number): void; /** * Assert that the arguments are all integers. * * @param numbers a list of numbers * @throws a {@link RangeError} when any number has a fractional part */ export declare function assertInteger(...numbers: any[]): void; /** * Assert that the arguments are all natural numbers. * * @param numbers a list of numbers * @throws a {@link RangeError} when any number is below zero or has a * fractional part */ export declare function assertNatural(...numbers: any[]): void; /** * Assert that the arguments are all natural numbers. * * @param numbers a list of numbers * @throws a {@link RangeError} when any number is below 1 or has a * fractional part */ export declare function assertCounting(...numbers: any[]): void; /** * Assert that the argument is or is assignable to an integral {@link Number} * type, and downcast it to a primitive. * * @param n a numeric type (note: though constrained in type, will not prevent * passing a type convertable with `Number()` in plain JavaScript. * @returns a primitive integer * @throws when encounters numeric arguments with a fractional component, * or when outside of safe integer range. */ export declare function castInteger(n: N): number;