import { FnConfig, TypeValidator } from "./base";
import { KeysOfType } from "../utils";
export declare class Numbers<T extends number | undefined = number> extends TypeValidator<T> {
    undefined(): Numbers<T | undefined>;
    required(options?: FnConfig): Numbers<T>;
    min(minValue: number, options?: FnConfig): Numbers<T>;
    max(maxValue: number, options?: FnConfig): Numbers<T>;
    range(minValue: number, maxValue: number, options?: FnConfig): Numbers<T>;
    integer(options?: FnConfig): Numbers<T>;
    positive(options?: FnConfig): Numbers<T>;
    negative(options?: FnConfig): Numbers<T>;
    decimal(options?: FnConfig): Numbers<T>;
    multipleOf(divisor: number, options?: FnConfig): Numbers<T>;
    betweenExclusive(minValue: number, maxValue: number, options?: FnConfig): Numbers<T>;
    even(options?: FnConfig): Numbers<T>;
    odd(options?: FnConfig): Numbers<T>;
    positiveInteger(options?: FnConfig): Numbers<T>;
    negativeInteger(options?: FnConfig): Numbers<T>;
    positiveDecimal(options?: FnConfig): Numbers<T>;
    negativeDecimal(options?: FnConfig): Numbers<T>;
    divisibleBy(divisor: number, options?: FnConfig): Numbers<T>;
    perfectSquare(options?: FnConfig): Numbers<T>;
    primeNumber(options?: FnConfig): Numbers<T>;
    fibonacciNumber(options?: FnConfig): Numbers<T>;
    powerOfTwo(options?: FnConfig): Numbers<T>;
    as<TO extends Record<string, any>>(key: KeysOfType<TO, number>, options?: FnConfig): this;
}
