import { TemplateFactory, TemplateFs, TemplateFactoryConfig, TemplateFuncMap, CustomizedFunctions } from '../type';
import { TemplateEngine } from '../entity/template';
import { RegularTemplateNamespace, PartialTemplateNamespace, ShortcodeTemplateNamespace } from '../vo/namespace';
export declare class Factory implements TemplateFactory {
    create(fs: TemplateFs): Promise<TemplateEngine>;
    createWithConfig(fs: TemplateFs, config: TemplateFactoryConfig): Promise<TemplateEngine>;
    createWithServices(fs: TemplateFs, services: CustomizedFunctions): Promise<TemplateEngine>;
}
export declare class Builder {
    private funcMap;
    private services?;
    private fs?;
    private templateNamespace?;
    private partialNamespace?;
    private shortcodeNamespace?;
    private lookup?;
    private parser?;
    private executor?;
    withFs(fs: TemplateFs): Builder;
    withNamespaces(templateNamespace: RegularTemplateNamespace, partialNamespace: PartialTemplateNamespace, shortcodeNamespace: ShortcodeTemplateNamespace): Builder;
    withFuncMap(funcMap: TemplateFuncMap): Builder;
    withServices(services: CustomizedFunctions): Builder;
    buildLookup(): Builder;
    buildParser(): Builder;
    buildExecutor(): Builder;
    build(): Promise<TemplateEngine>;
}
export declare function newTemplateFactory(): Factory;
export declare function newBuilder(): Builder;
export declare function createTemplateEngine(fs: TemplateFs, funcMap?: TemplateFuncMap): Promise<TemplateEngine>;
export declare function createTemplateEngineWithServices(fs: TemplateFs, services: CustomizedFunctions): Promise<TemplateEngine>;
