import type { NpmRegistryConfig } from './npm-controller.interface'; import type { SettingsJson, TargetCLMs } from '@ewizardjs/settings'; export type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; export type SettingsJsonWithScheme = SettingsJson & { scheme?: string; }; export interface Options { archive: boolean; from?: string[]; fromAll?: boolean; name?: string; scheme?: string; target?: keyof typeof TargetCLMs; theme?: string; } export interface CreateCtx { baseDir: string; build?: string[]; buildDir: string; dest: string; layoutName?: string; layoutPath: string; options?: CreateOptions; } export type CreateCommand = 'layout' | 'ewizard-template'; export type MasterRepoInfo = { repoName: string; repoUrl: string; }; export interface CreateOptions extends Options { command: CreateCommand; archiveDest?: string; fromMasterTemplate?: boolean; masterRepoInfo?: MasterRepoInfo; npmRegistryConfig?: NpmRegistryConfig; }