import type { TsCodeFragment } from '@baseplate-dev/core-generators';
/**
 * Generator for billing module files (billing.service.ts, billing-config.ts).
 *
 * Placed inside a feature module via addChildrenToFeature, giving it access
 * to {module-root} for path resolution.
 */
export declare const billingModuleGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
    plans: {
        key: string;
        displayName: string;
        grantedRoles: string[];
    }[];
}, {
    paths: import("@baseplate-dev/sync").GeneratorTask<{
        stripeBillingModulePaths: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-paths.js").StripeBillingModulePaths>;
    }, {
        appModule: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/fastify-generators").AppModuleProvider>;
    }, undefined>;
    imports: import("@baseplate-dev/sync").GeneratorTask<{
        billingModuleImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            getOrCreateBillingAccount: {};
            getPlanKeyByPriceId: {};
            handleSubscriptionEvent: {};
            PlanKey: {
                isTypeOnly: true;
            };
            SUBSCRIPTION_PLANS: {};
            syncSubscriptionFromStripe: {};
        }>>;
    }, {
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").StripeBillingModulePaths>;
    }, undefined>;
    renderers: import("@baseplate-dev/sync").GeneratorTask<{
        stripeBillingModuleRenderers: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-renderers.js").StripeBillingModuleRenderers>;
    }, {
        authRolesImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            AUTH_ROLE_CONFIG: {};
            AuthRole: {
                isTypeOnly: true;
            };
            DEFAULT_PUBLIC_ROLES: {};
            DEFAULT_USER_ROLES: {};
            RoleConfig: {
                isTypeOnly: true;
            };
        }>>;
        configServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            config: {};
        }>>;
        errorHandlerServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            BadRequestError: {};
            ForbiddenError: {};
            handleZodRequestValidationError: {};
            HttpError: {};
            InternalServerError: {};
            logError: {};
            NotFoundError: {};
            TooManyRequestsError: {};
            UnauthorizedError: {};
        }>>;
        fastifyStripeImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            stripe: {};
            stripeEventHandlers: {};
            stripeWebhookPlugin: {};
        }>>;
        loggerServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            logger: {};
        }>>;
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").StripeBillingModulePaths>;
        prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            PrismaClient: {};
            Prisma: {};
            '*': {};
            $Enums: {};
        }>>;
        prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
            prisma: {};
        }>>;
        typescriptFile: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").TypescriptFileProvider>;
    }, undefined>;
    webhookHandlers: import("@baseplate-dev/sync").GeneratorTask<any, {
        stripeWebhookConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{
            eventHandlers: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>;
        }>, "getValues">>;
        paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").StripeBillingModulePaths>;
    }, any>;
    main: import("@baseplate-dev/sync").GeneratorTask<any, {
        renderers: import("@baseplate-dev/sync").ProviderType<import("./generated/template-renderers.js").StripeBillingModuleRenderers>;
    }, any>;
}>;
//# sourceMappingURL=billing-module.generator.d.ts.map