import { ExtensionManifest, Harmony } from '@teambit/harmony';
import { Workspace } from '../workspace';
import { AddActionResults } from '../../consumer/component-ops/add-components/add-components';
import { CreateExtConfig } from './types';
declare type TemplateFile = {
    path: string;
    content: string;
};
declare type TemplateFuncResult = {
    files: TemplateFile[];
    main?: string;
};
declare type TemplateFunc = (...args: string[]) => TemplateFuncResult;
export declare class Create {
    private config;
    private workspace;
    private registry;
    constructor(config: CreateExtConfig, workspace: Workspace, registry: Registry);
    register(manifest: ExtensionManifest, template: TemplateFunc): this;
    create(name: string): Promise<AddActionResults>;
    private getComponentPath;
    private getTemplateResults;
    private writeComponentFiles;
}
export declare class Registry {
    private harmony;
    constructor(harmony: Harmony);
    private templates;
    get(name: string): any;
    set(manifest: ExtensionManifest, templateFunc: TemplateFunc): this;
}
export {};
