import { typescriptFileProvider } from '@baseplate-dev/core-generators';
import { authRolesImportsProvider, configServiceImportsProvider, errorHandlerServiceImportsProvider, loggerServiceImportsProvider, prismaGeneratedImportsProvider, prismaImportsProvider, } from '@baseplate-dev/fastify-generators';
import { createGeneratorTask, createProviderType } from '@baseplate-dev/sync';
import { fastifyStripeImportsProvider } from '#src/stripe/core/generators/fastify-stripe/generated/ts-import-providers.js';
import { STRIPE_BILLING_MODULE_PATHS } from './template-paths.js';
import { STRIPE_BILLING_MODULE_TEMPLATES } from './typed-templates.js';
const stripeBillingModuleRenderers = createProviderType('stripe-billing-module-renderers');
const stripeBillingModuleRenderersTask = createGeneratorTask({
    dependencies: {
        authRolesImports: authRolesImportsProvider,
        configServiceImports: configServiceImportsProvider,
        errorHandlerServiceImports: errorHandlerServiceImportsProvider,
        fastifyStripeImports: fastifyStripeImportsProvider,
        loggerServiceImports: loggerServiceImportsProvider,
        paths: STRIPE_BILLING_MODULE_PATHS.provider,
        prismaGeneratedImports: prismaGeneratedImportsProvider,
        prismaImports: prismaImportsProvider,
        typescriptFile: typescriptFileProvider,
    },
    exports: {
        stripeBillingModuleRenderers: stripeBillingModuleRenderers.export(),
    },
    run({ authRolesImports, configServiceImports, errorHandlerServiceImports, fastifyStripeImports, loggerServiceImports, paths, prismaGeneratedImports, prismaImports, typescriptFile, }) {
        return {
            providers: {
                stripeBillingModuleRenderers: {
                    moduleGroup: {
                        render: (options) => typescriptFile.renderTemplateGroup({
                            group: STRIPE_BILLING_MODULE_TEMPLATES.moduleGroup,
                            paths,
                            importMapProviders: {
                                authRolesImports,
                                configServiceImports,
                                errorHandlerServiceImports,
                                fastifyStripeImports,
                                loggerServiceImports,
                                prismaGeneratedImports,
                                prismaImports,
                            },
                            generatorPaths: paths,
                            ...options,
                        }),
                    },
                },
            },
        };
    },
});
export const STRIPE_BILLING_MODULE_RENDERERS = {
    provider: stripeBillingModuleRenderers,
    task: stripeBillingModuleRenderersTask,
};
//# sourceMappingURL=template-renderers.js.map