import { Join } from "../types/join";

type EachExpression = "[]" | "";
type NoneExpression = "!" | "?";
type ArgsExpression<Args extends string[]> = `(${Join<Args, ",">})` | "";
type CommentExpression = `#${string}` | "";

export type CreateExpression<
  Type extends string,
  Args extends string[] = []
> = `${Type}${EachExpression}${NoneExpression}${ArgsExpression<Args>}${CommentExpression}`;
