import { type BoolAnd, type BoolNot } from 'ts-type-forge'; import { type Type } from '../type.mjs'; type NumberType = bigint; export declare function bigint(defaultValue?: NumberType): Type; export declare function bigint(defaultValue: N & DefaultValueType, constraints: C): Type; type Constraints = Partial>; type DefaultValueType = DefaultValueWhenNonZeroIsOn & DefaultValueWhenNegativeIsOn & DefaultValueWhenNonNegativeIsOn & DefaultValueWhenPositiveIsOn & DefaultValueWhenNonPositiveIsOn; type DefaultValueWhenNonZeroIsOn = C extends Readonly<{ nonZero: true; }> ? NonZeroNumber : NumberType; type DefaultValueWhenNegativeIsOn = C extends Readonly<{ negative: true; }> ? NegativeNumber : NumberType; type DefaultValueWhenNonNegativeIsOn = C extends Readonly<{ nonNegative: true; }> ? NonNegativeNumber : NumberType; type DefaultValueWhenPositiveIsOn = C extends Readonly<{ positive: true; }> ? PositiveNumber : NumberType; type DefaultValueWhenNonPositiveIsOn = C extends Readonly<{ nonPositive: true; }> ? NonPositiveNumber : NumberType; type NonZeroNumber = NumberType extends N ? NumberType : IsZero extends true ? never : N; type NegativeNumber = NumberType extends N ? NumberType : IsNegative extends true ? N : never; type NonNegativeNumber = NumberType extends N ? NumberType : IsNonNegative extends true ? N : never; type PositiveNumber = NumberType extends N ? NumberType : IsPositive extends true ? N : never; type NonPositiveNumber = NumberType extends N ? NumberType : IsNonPositive extends true ? N : never; type IsZero = `${N}` extends '0' ? true : false; type IsNonZero = IsZero extends true ? false : true; type IsNegative = `${N}` extends `-${string}` ? true : false; type IsNonNegative = IsNegative extends true ? false : true; type IsPositive = BoolAnd, IsNonNegative>; type IsNonPositive = BoolNot>; export {}; //# sourceMappingURL=bigint.d.mts.map