import { SettingsJson, TargetCLMs } from '@ewizardjs/settings';
import { NpmRegistryConfig } from './npm-controller.interface';
export type DeepPartial<T> = T extends object ? {
    [P in keyof T]?: DeepPartial<T[P]>;
} : 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;
}
