import { ResultDir, ProjectSchema } from '@alilc/lowcode-types';
import { IProjectBuilder, IProjectPlugins, IProjectTemplate, ISchemaParser, PostProcessor } from '../types';
import { ProjectPreProcessor, ProjectPostProcessor, IContextData } from '../types/core';
export interface ProjectBuilderInitOptions {
    /** 项目模板 */
    template: IProjectTemplate;
    /** 项目插件 */
    plugins: IProjectPlugins;
    /** 模块后置处理器 */
    postProcessors: PostProcessor[];
    /** Schema 解析器 */
    schemaParser?: ISchemaParser;
    /** 项目级别的前置处理器 */
    projectPreProcessors?: ProjectPreProcessor[];
    /** 项目级别的后置处理器 */
    projectPostProcessors?: ProjectPostProcessor[];
    /** 是否处于严格模式 */
    inStrictMode?: boolean;
    /** 一些额外的上下文数据 */
    extraContextData?: Record<string, unknown>;
}
export declare class ProjectBuilder implements IProjectBuilder {
    /** 项目模板 */
    private template;
    /** 项目插件 */
    private plugins;
    /** 模块后置处理器 */
    private postProcessors;
    /** Schema 解析器 */
    private schemaParser;
    /** 项目级别的前置处理器 */
    private projectPreProcessors;
    /** 项目级别的后置处理器 */
    private projectPostProcessors;
    /** 是否处于严格模式 */
    readonly inStrictMode: boolean;
    /** 一些额外的上下文数据 */
    readonly extraContextData: IContextData;
    constructor({ template, plugins, postProcessors, schemaParser, projectPreProcessors, projectPostProcessors, inStrictMode, extraContextData, }: ProjectBuilderInitOptions);
    generateProject(originalSchema: ProjectSchema | string): Promise<ResultDir>;
    private createModuleBuilders;
}
export declare function createProjectBuilder(initOptions: ProjectBuilderInitOptions): IProjectBuilder;
