import { ConfigsCollection } from "@bonbons/contracts";
export interface RenderFunction<TOptions = any> {
    (tpl: string, data?: any, options?: TOptions): string | undefined;
}
export interface CompiledRenderFunction<TOptions = any> {
    (data?: any, options?: TOptions): string | undefined;
}
export interface TplRenderCompiler {
    (configs: ConfigsCollection): (filename: string, ispath?: boolean) => Promise<CompiledRenderFunction>;
}
export interface TplRenderCompilerOptions {
    compilerFactory?: TplRenderCompiler;
    compiler?: (filename: string, ispath?: boolean) => Promise<CompiledRenderFunction>;
}
export interface ViewTplRenderOptions<TOptions = any> {
    render?: RenderFunction<TOptions>;
    root?: string;
    extensions?: string | string[];
    cache?: {
        [prop: string]: CompiledRenderFunction<TOptions>;
    };
    options?: TOptions;
}
export declare const TPL_RENDER_OPTIONS: import("../../node_modules/@bonbons/di/node_modules/@bonbons/contracts/dist/src/di").BonbonsToken<ViewTplRenderOptions<any>>;
export declare const TPL_RENDER_COMPILER: import("../../node_modules/@bonbons/di/node_modules/@bonbons/contracts/dist/src/di").BonbonsToken<TplRenderCompilerOptions>;
