import type Yargs from 'yargs'; import type { ArgumentsCamelCase, Argv } from 'yargs'; import type RTLogger from './logger.js'; import { RepoTherapyUtilBase } from './base.js'; import type RepoTherapy from './repo-therapy.js'; import type { ValueTypeDefinition } from '../generated/types/value-types.js'; import type { ObjectDefinition } from './types.js'; import type { RTValueTypeObject } from './value-type-definitions.js'; export type ScriptArgMeta = { alias?: string; hidden?: boolean; deprecated?: boolean; }; export type Options = {}, Prompt extends Record = {}> = { description: string; name: string; command: string; delimiter: string; deprecated?: boolean | string | { customMessage: string; }; args?: (valueType: ValueTypeDefinition, logger: RTLogger, repoTherapy: RepoTherapy, variant?: string) => ObjectDefinition; variants: (repoTherapy: RepoTherapy, logger: RTLogger) => string[]; params?: (keyof Args & string)[]; prompts?: (valueType: ValueTypeDefinition, logger: RTLogger, repoTherapy: RepoTherapy, variant?: string) => { question: string; key: keyof Prompt & string; valueDefinition: ReturnType; }[]; handler: (args: Args & Prompt, logger: RTLogger, repoTherapy: RepoTherapy, scriptClass: RTScript, variant?: string) => unknown | Promise; }; export default class RTScript = {}, Prompt extends Record = {}> extends RepoTherapyUtilBase, 'args'>, RTScript> { protected readonly _args?: (variant?: string) => ReturnType['chainable']> | undefined; protected get _deprecated(): string | undefined; constructor(repoTherapy: RepoTherapy, name: string, description: string, handler: Options['handler'], options?: Partial, 'description' | 'name'>>); handler(args: ArgumentsCamelCase, variant?: string): Promise; builder(yargs: Argv<{}>, variant?: string): Promise>; loadCommand(yargs: ReturnType): Promise>; private _prompt; customPrompt = {}>(prompts: (valueType: ValueTypeDefinition) => ReturnType>['prompts']>): Promise; static define = {}, U extends Record = {}>(description: string, options: Partial, 'description' | 'name'>> & { handler: Options['handler']; }): (repoTherapy: RepoTherapy, name?: string) => RTScript; } //# sourceMappingURL=script.d.ts.map