import { BaseCommand } from './base.command';

export type CommandOptions<T> = {
    name: string | string[];
    params?: CommandParamMetaData<T>;
    guards?: CommandGuard[];
    grouped?: string;
    description?: string;
};

export function Command<T>(options: CommandOptions<T>) {
    return function (constructor: typeof BaseCommand): void {
        constructor.prototype.$options = options;
    };
}
