import type { Provider } from "@metaobjectsdev/render";
/** Provider backed by an arbitrary on-disk template directory. References
* resolve as `
/[.mustache`. Used by both the framework default
* and adopter override paths. */
export declare class FileSystemProvider implements Provider {
private readonly root;
constructor(root: string);
resolve(ref: string): string | undefined;
}
export declare const frameworkTemplatesProvider: Provider;
/** Compose providers: first match wins. Adopters typically chain
* `[projectProvider, frameworkTemplatesProvider]` so their own templates
* override the framework defaults. */
export declare class ProviderChain implements Provider {
private readonly providers;
constructor(providers: readonly Provider[]);
resolve(ref: string): string | undefined;
}
/** Build a project-scoped Provider: layers an optional project `templates/`
* directory over the framework defaults. Returns just the framework provider
* when `projectRoot` is undefined / its `templates/` dir doesn't exist. */
export declare function projectProvider(projectRoot?: string): Provider;
/** Exposed for tests that want to inspect the resolved framework templates
* directory (don't use outside tests). Resolved lazily so that merely
* importing this module never walks the filesystem or throws — tests always
* run from source where the on-disk dir exists; the standalone binary (where
* no dir exists) never touches this export. */
export declare function frameworkTemplatesDirForTests(): string;
//# sourceMappingURL=framework-provider.d.ts.map]