import { VipCommanderDetailRecord, VipCommanderOptions, PackageJSONWithPath } from '@142vip/utils';

/**
 * fairy-cli 命令枚举
 */
declare enum CommandEnum {
    LOGIN = "login",
    RELEASE = "release",
    CHANGELOG = "changelog",
    PUBLISH = "publish",
    CLEAN = "clean",
    LINT = "lint",
    DEPLOY = "deploy",
    TURBO = "turbo",
    INSTALL = "install",
    SYNC = "sync",
    COPYRIGHT = "copyright",
    COMMIT = "commit"
}
/**
 * 命令详细信息
 */
declare const CLI_COMMAND_DETAIL: VipCommanderDetailRecord<CommandEnum>;

/**
 * fairy-cli 命令选项
 */
interface FairyCommandOptions extends Omit<VipCommanderOptions, 'help'> {
}

declare function fairyCliMain(): Promise<void>;

/**
 * 打印模块预检信息
 */
declare function printPreCheckRelease(packageNames: string[]): Promise<void>;
/**
 * 更新公共包、发布项目
 * 生成changelog文档，更新version 【支持monorepo】
 *  - 更新根目录下的version版本
 *  - 提交commit信息
 *  - 标记tag信息
 */
declare function releasePackage(pkg?: PackageJSONWithPath): Promise<void>;

export { CLI_COMMAND_DETAIL, CommandEnum, type FairyCommandOptions, fairyCliMain, printPreCheckRelease, releasePackage };
