import { Question } from "inquirer"; import { AppParam } from "./app.config.js"; export interface CommandWithCondition { when?: string; command: string; } export interface PluginInquirerOption { name: string; alias?: string; description?: string; validate?: Record | string; transform?: string; when?: string; inquirer?: Partial; } export interface PluginConfigVariable extends PluginInquirerOption { type: AppParam['type']; default?: string | number | boolean; configurable: boolean; skipEnvSave?: boolean; } export interface PluginGeneratorArg extends PluginInquirerOption { saveEnv?: boolean; type?: AppParam['type']; } export interface PrismaScript { description: string; command: string; when?: string; } export interface PluginGenerator { name: string; description?: string; files: Array; args?: Array; fileModifications?: Array; postMessages?: Array; preMessages?: Array; afterGenerate?: CommandWithCondition; requiredPackages?: Array; dependencies?: Array; requiredPaths?: Array; prismaScripts?: PrismaScript[]; } export interface PluginRegistration { pluginImportName: string; pluginArgs?: string; imports?: string[]; code?: string[]; } export interface PluginFileMapping { source: string; destination: string; overwrite?: boolean; isHandlebarsTemplate?: boolean; isRoot?: boolean; } export interface PluginFileModification { path: string; mode: "prepend" | "append"; content: string; match: string; expected?: boolean; isHandlebarsTemplate?: boolean; when?: string; } export interface PluginMetadata { name: string; description?: string; registration?: PluginRegistration; variables?: Array; files?: Array; generators?: Array; provideScripts?: Record; postInstall?: string; afterInstall?: CommandWithCondition; postMessages?: Array; preMessages?: Array; postFileModifications?: Array; requiredPackages?: Array; requiredPaths?: Array; prisma?: { required: boolean; scripts?: Array; }; } export declare function validatePluginConfig(config: PluginMetadata): boolean; //# sourceMappingURL=plugins-configuration.d.ts.map