import { StripeService } from '../services/stripe.service'; import { CreateCheckoutSessionDto, CreateBillingPortalSessionDto } from '../dto/stripe-webhook.dto'; import { RequestUser } from '../../auth/strategies/jwt.strategy'; export declare class StripeController { private readonly stripeService; constructor(stripeService: StripeService); createCheckoutSession(dto: CreateCheckoutSessionDto, user: RequestUser): Promise<{ session_id: string; url: string | null; }>; createBillingPortalSession(dto: CreateBillingPortalSessionDto, user: RequestUser): Promise<{ url: string; }>; createSetupIntent(user: RequestUser): Promise<{ error: string; client_secret: null; } | { client_secret: string | null; error?: undefined; }>; listPrices(productId?: string): Promise<{ id: string; product: any; currency: string; unit_amount: number | null; interval: import("stripe").Stripe.Price.Recurring.Interval | undefined; interval_count: number | undefined; }[]>; getCustomer(user: RequestUser): Promise<{ exists: boolean; customer: null; } | { exists: boolean; customer: { id: string; email: string | null; name: string | null | undefined; created: number; }; }>; createCustomer(user: RequestUser, body: { email: string; name?: string; }): Promise<{ created: boolean; customer: { id: string; email: string | null; name: string | null | undefined; }; message: string; } | { created: boolean; customer: { id: string; email: string | null; name: string | null | undefined; }; message?: undefined; }>; listPaymentMethods(user: RequestUser): Promise<{ payment_methods: { id: string; type: import("stripe").Stripe.PaymentMethod.Type; card: { brand: string; last4: string; exp_month: number; exp_year: number; } | null; created: number; }[]; }>; }