import { FastifyReply } from "fastify"; import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface"; import { JsonApiService } from "../../../core/jsonapi"; import { StripeCustomerPostDTO, StripeCustomerPutDTO } from "../dtos/stripe-customer.dto"; import { StripeCustomerRepository } from "../repositories/stripe-customer.repository"; import { StripeCustomerAdminService } from "../services/stripe-customer-admin.service"; import { StripeCustomerApiService } from "../services/stripe-customer-api.service"; /** * StripeCustomerController * * REST API endpoints for Stripe customer management. * Provides CRUD operations for billing customers with JSON:API compliance. * * Base path: /stripe-customers */ export declare class StripeCustomerController { private readonly stripeCustomerAdminService; private readonly stripeCustomerApiService; private readonly stripeCustomerRepository; private readonly jsonApiService; constructor(stripeCustomerAdminService: StripeCustomerAdminService, stripeCustomerApiService: StripeCustomerApiService, stripeCustomerRepository: StripeCustomerRepository, jsonApiService: JsonApiService); /** * Get the stripe customer for the current company * * @route GET /stripe-customers */ getCustomer(req: AuthenticatedRequest, reply: FastifyReply): Promise; /** * Get a stripe customer by ID * * @route GET /stripe-customers/:id */ getCustomerById(req: AuthenticatedRequest, reply: FastifyReply, id: string): Promise; /** * Create a new stripe customer * * @route POST /stripe-customers */ createCustomer(req: AuthenticatedRequest, reply: FastifyReply, body: StripeCustomerPostDTO): Promise; /** * Update a stripe customer * * @route PUT /stripe-customers/:id */ updateCustomer(req: AuthenticatedRequest, reply: FastifyReply, id: string, body: StripeCustomerPutDTO): Promise; /** * Delete a stripe customer * * @route DELETE /stripe-customers/:id */ deleteCustomer(req: AuthenticatedRequest, reply: FastifyReply, id: string): Promise; /** * List payment methods for the customer * * @route GET /stripe-customers/payment-methods */ listPaymentMethods(req: AuthenticatedRequest, reply: FastifyReply): Promise; /** * Set default payment method for the customer * * @route POST /stripe-customers/payment-methods/:paymentMethodId/default */ setDefaultPaymentMethod(req: AuthenticatedRequest, reply: FastifyReply, paymentMethodId: string): Promise; /** * Detach a payment method from the customer * * @route DELETE /stripe-customers/payment-methods/:paymentMethodId */ detachPaymentMethod(req: AuthenticatedRequest, reply: FastifyReply, paymentMethodId: string): Promise; } //# sourceMappingURL=stripe-customer.controller.d.ts.map