import { Join } from '../types/join.js';

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

export type { CreateExpression };
