import type { StringCheckerCustomPattern } from "../expansions/string";
import type { CreateExpression } from "../factories/expression";
import type { IntegerString } from "../types/integer-string";

type StringCustomPatternArg = keyof StringCheckerCustomPattern;

export type StringExpression = CreateExpression<
  "string",
  [
    | `/${string}/`
    | `${IntegerString}~`
    | `~${IntegerString}`
    | `${IntegerString}~${IntegerString}`
    | StringCustomPatternArg
    | ""
  ]
>;
