import { Result } from '@codiac.io/codiac-common/contracts';
import { IBetterLogger } from '@codiac.io/codiac-common/IBetterLogger';
import { ProjectConfig } from "@codiac.io/codiac-relay-contracts";
import { Scaffolding } from './entities/scaffolding';
import { LocalOps } from './LocalOps';
import { ProjectContextRepo } from './data/cli-context-repo';
export interface IProjectScaffolder {
}
/**
 *
 */
export declare class ProjectInitializer {
    private _ops;
    private _cfgRepo;
    private logger;
    static readonly SCAFFOLDING_SUFFIX = "-scaffolding";
    static readonly DEFAULT_REGISTRY_URL = "https://index.docker.io/v1";
    constructor(cliRoot: string, _ops: LocalOps, _cfgRepo: ProjectContextRepo, logger: IBetterLogger);
    /** Local options for Toyhauler behavior within this project.  */
    private _projectConfig;
    private cliAssetsFolder;
    /**
     *
     * @param targetFolder Absolute or relative to the current working directory.  If clone url is specified, the repo will be cloned directly into this folder.
     * @param projectType The Codiac project type to scaffold.
     * @param cloneUrl Fully qualified clone url for the repo.  This url gets stored with the project.
     */
    init(targetFolder: string, projectType?: string, cloneUrl?: string): Promise<Result>;
    /** Poor-man's ioc to get the project initializer.
     *
     * @param name (Optional: defaults to the base scaffolding) name of scaffolding package to initialize with.
     */
    private getScaffolding;
    /** Creates initial files and folders required for any api using the given scaffolding parameters. */
    scaffoldProject(scaffolding: Scaffolding, projectConfig: ProjectConfig): Promise<void>;
}
