/* eslint-disable @typescript-eslint/consistent-type-imports */ import type { Merge, PackageJson, Simplify } from 'type-fest'; import type { ExportApplicationPropertiesFromCommand } from '../../lib/command/types.js'; import type JavascriptBootstrapCommand from './generators/bootstrap/command.js'; type JavascriptBootstrapProperties = ExportApplicationPropertiesFromCommand; type DependencyValue = string | undefined | null; export type JavaScriptSourceType = { mergePrettierConfig?: (config: Record) => void; addPrettierIgnore?: (newContent: string) => void; addEslintIgnore?: (opts: { ignorePattern: string }) => void; addEslintConfig?: (opts: { import?: string | string[]; config?: string | string[] }) => void; /** Merge data to client's package.json */ mergeClientPackageJson?( args: Simplify< Merge; devDependencies?: Record }> >, ): void; }; export type JavaScriptApplication = JavascriptBootstrapProperties & ExportApplicationPropertiesFromCommand & ExportApplicationPropertiesFromCommand & { packageJsonNodeEngine?: boolean | string; eslintConfigFile?: string; cjsExtension?: string; mjsExtension?: string; /** Root package.json scripts */ packageJsonScripts: Record; /** Root package.json scripts */ clientPackageJsonScripts: Record; addPrettierExtensions?: (extensions: string[]) => void; };