import {
  ARRAY_TYPE,
  BOOLEAN_TYPE,
  INTEGER_TYPE,
  NULL_TYPE,
  NUMBER_OR_STRING_TYPE,
  NUMBER_TYPE,
  STRING_TYPE,
  OBJECT_TYPE,
  STRING_OR_NUMBER_TYPE,
} from './constant';

export type ArrayType = typeof ARRAY_TYPE;
export type BooleanType = typeof BOOLEAN_TYPE;
export type IntegerType = typeof INTEGER_TYPE;
export type NullType = typeof NULL_TYPE;
export type NumberOrStringType = typeof NUMBER_OR_STRING_TYPE | typeof STRING_OR_NUMBER_TYPE;
export type NumberType = typeof NUMBER_TYPE;
export type ObjectType = typeof OBJECT_TYPE;
export type StringType = typeof STRING_TYPE;

export type PrimitiveType =
  BooleanType |
  IntegerType |
  NumberType |
  StringType;