import type { BuilderAction, WriteFileOptions } from '@baseplate-dev/sync';
import type { InferTextTemplateVariablesFromTemplate, TextTemplateFile, TextTemplateGroup } from './types.js';
type HasVariables<T extends TextTemplateFile> = keyof InferTextTemplateVariablesFromTemplate<T> extends never ? false : true;
type InferTextTemplateVariablesFromTemplateGroup<T extends TextTemplateGroup> = {
    [K in keyof T as HasVariables<T[K]> extends true ? K : never]: InferTextTemplateVariablesFromTemplate<T[K]>;
};
interface RenderTextTemplateGroupActionInputBase<T extends TextTemplateGroup> {
    group: T;
    paths: {
        [K in keyof T]: string;
    };
    options?: {
        [K in keyof T]?: Omit<WriteFileOptions, 'templateMetadata'>;
    };
}
export type RenderTextTemplateGroupActionInput<T extends TextTemplateGroup = TextTemplateGroup> = RenderTextTemplateGroupActionInputBase<T> & (keyof InferTextTemplateVariablesFromTemplateGroup<T> extends never ? Partial<{
    variables: InferTextTemplateVariablesFromTemplateGroup<T>;
}> : {
    variables: InferTextTemplateVariablesFromTemplateGroup<T>;
});
export declare function renderTextTemplateGroupAction<T extends TextTemplateGroup = TextTemplateGroup>({ group, paths, variables, options, }: RenderTextTemplateGroupActionInput<T>): BuilderAction;
export {};
//# sourceMappingURL=render-text-template-group-action.d.ts.map