import { Context, Effect, Layer } from 'effect'; import type { BodyContext, FrontmatterContext } from './context'; import { TemplateCompileError, TemplateResolutionError } from './errors'; export interface TemplateEngineConfig { partialDirs?: string[]; basePath?: string; envAllowlist?: string[]; strict?: boolean; maxOutputSize?: number; } export interface TemplateEngine { compileFrontmatter(raw: string, context: FrontmatterContext, filePath: string): Effect.Effect; resolveBody(template: string, context: BodyContext, filePath: string): Effect.Effect; validate(template: string, filePath: string): Effect.Effect; registerPartial(name: string, content: string): Effect.Effect; invalidateCache(): Effect.Effect; } export declare const TemplateEngine: Context.Tag; export declare const containsEtaSyntax: (text: string) => boolean; export declare const TemplateEngineLive: (config?: TemplateEngineConfig) => Layer.Layer; //# sourceMappingURL=engine.d.ts.map