import { GenerateOptions } from "api-farmer";
import { ChangelogOptions, PublishCommandOptions, ReleaseCommandOptions } from "@varlet/release";

//#region src/cli/config.d.ts
type GitHook = 'applypatch-msg' | 'pre-applypatch' | 'post-applypatch' | 'pre-commit' | 'pre-merge-commit' | 'prepare-commit-msg' | 'commit-msg' | 'post-commit' | 'pre-rebase' | 'post-checkout' | 'post-merge' | 'pre-push' | 'pre-auto-gc' | 'post-rewrite';
type HookConfig = Partial<Record<GitHook, string[]>>;
type CleanConfig = string | string[] | {
  patterns?: string[];
};
type RattailConfig = {
  clean?: CleanConfig;
  hook?: HookConfig;
  api?: GenerateOptions;
  release?: ReleaseCommandOptions;
  publish?: PublishCommandOptions;
  changelog?: ChangelogOptions;
};
//#endregion
export { RattailConfig as n, HookConfig as t };