import { BillingService } from './services/billing.service'; import { CreateSubscriptionDto, UpdateSubscriptionDto, CancelSubscriptionDto, CreatePaymentMethodDto } from './dto'; import { RequestUser } from '../auth/strategies/jwt.strategy'; export declare class BillingController { private readonly billingService; constructor(billingService: BillingService); getSubscription(user: RequestUser): Promise; getSubscriptionStatus(user: RequestUser): Promise<{ isActive: boolean; daysRemaining: number; status: import("./entities").SubscriptionStatus; }>; createSubscription(dto: CreateSubscriptionDto, user: RequestUser): Promise; updateSubscription(dto: UpdateSubscriptionDto, user: RequestUser): Promise; cancelSubscription(dto: CancelSubscriptionDto, user: RequestUser): Promise; changePlan(planId: string, user: RequestUser): Promise; getInvoices(user: RequestUser, page?: number, limit?: number): Promise<{ data: import("./entities").Invoice[]; total: number; page: number; limit: number; }>; getInvoice(id: string, user: RequestUser): Promise; markInvoicePaid(id: string, user: RequestUser): Promise; voidInvoice(id: string, user: RequestUser): Promise; getPaymentMethods(user: RequestUser): Promise; addPaymentMethod(dto: CreatePaymentMethodDto, user: RequestUser): Promise; setDefaultPaymentMethod(id: string, user: RequestUser): Promise; removePaymentMethod(id: string, user: RequestUser): Promise<{ message: string; }>; getBillingSummary(user: RequestUser): Promise<{ subscription: import("./entities").Subscription | null; defaultPaymentMethod: import("./entities").PaymentMethod | null; pendingInvoices: number; totalDue: number; }>; }