import type { CreateExpression } from "../factories/expression";
import type { IntegerString } from "../types/integer-string";

type NumberRangeArg = `${number}~` | `~${number}` | `${number}~${number}`;
type NumberPrecisionArg = `${IntegerString}.` | `.${IntegerString}` | `${IntegerString}.${IntegerString}`;

export type NumberExpression = CreateExpression<
  "number",
  [NumberRangeArg | NumberPrecisionArg | "", NumberRangeArg | NumberPrecisionArg | ""]
>;
