import { Effect, Context } from 'effect';
import { type TemplateVariables } from './utils/decodeVariables';
import { type TemplateOverrides } from './utils/decodeTemplateOverrides';
declare const MosaicVariables_base: Context.TagClass<MosaicVariables, "MosaicVariables", {
    readonly templateVariables: Effect.Effect<TemplateVariables>;
    readonly templateOverrides: Effect.Effect<TemplateOverrides>;
}>;
export declare class MosaicVariables extends MosaicVariables_base {
}
export declare class Mosaic {
    private instructionsDir;
    private variables;
    private overrides;
    /**
     * Creates a new Mosaic instance.
     * @param instructionsDir - Path to the directory containing all the markdown files to be parsed and assembled.
     * This directory should contain the modular instruction templates for expansion.
     */
    constructor(instructionsDir: string);
    compose(templateSelector: string): string;
    /**
     * Creates a new Mosaic instance from a directory of markdown files.
     * @param instructionsDir - Path to the directory that this mosaic will have as a parse base.
     */
    static fromDirectory(instructionsDir: string): Mosaic;
    provideVariables(variables: TemplateVariables): Mosaic;
    provideOverrides(overrides: TemplateOverrides): Mosaic;
}
export {};
//# sourceMappingURL=Mosaic.d.ts.map