import { AbstractValidator } from '../types'; import type { Branding } from '../types'; /** Constraints to validate a `bigint` with. */ export interface BigIntConstraints { /** The value for which a `bigint` must be multiple of for it to be valid */ multipleOf?: bigint | number; /** The _inclusive_ maximum value for a valid `bigint`: `value <= maximum` */ maximum?: bigint | number; /** The _inclusive_ minimum value for a valid `bigint`: `value >= minimum` */ minimum?: bigint | number; /** The _exclusive_ maximum value for a valid `bigint`: `value < exclusiveMaximum` */ exclusiveMaximum?: bigint | number; /** The _exclusive_ minimum value for a valid `bigint`: `value > exclusiveMaximum` */ exclusiveMinimum?: bigint | number; /** Allow bigints to be parsed from strings (e.g. `123.456` or `0x0CAFE`, default: `false`) */ fromString?: boolean; /** Allow bigints to be parsed from numbers (default: `true`) */ fromNumber?: boolean; } /** Constraints to validate a `bigint` with extra branding information. */ export interface BrandedBigIntConstraints extends BigIntConstraints { /** The _brand_ of the string (will generate a `__brand_${B}` type property */ brand: B; } /** A `Validator` validating any `bigint`. */ export declare class AnyBigIntValidator extends AbstractValidator { validate(value: unknown): bigint; } /** A `Validator` validating `bigint`s with constaints. */ export declare class BigIntValidator extends AbstractValidator { readonly fromString: boolean; readonly fromNumber: boolean; readonly exclusiveMaximum?: bigint; readonly exclusiveMinimum?: bigint; readonly maximum?: bigint; readonly minimum?: bigint; readonly multipleOf?: bigint; readonly brand?: string; constructor(constraints?: BigIntConstraints); validate(value: unknown): N; } export declare function bigintValidatorFactory(constraints: BigIntConstraints): BigIntValidator; export declare function bigintValidatorFactory(constraints: BigIntConstraints): BigIntValidator; export declare function bigintValidatorFactory(constraints: BrandedBigIntConstraints): BigIntValidator>; /** Validate `bigint`s. */ export declare const bigint: typeof bigintValidatorFactory & AnyBigIntValidator;