import { OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core'; import { SubscriptionsService, PaymentMethodsService, InvoicesService, UsageService } from '../../services'; import { SubscriptionWithRelations, PaymentMethod, Invoice, UsageSummary } from '../../models'; import * as i0 from "@angular/core"; /** * Complete billing management widget with subscription, payment methods, and invoices * * @example * ```html * * * ``` */ export declare class BillingPortalComponent implements OnInit, OnDestroy, OnChanges { private subscriptionsService; private paymentMethodsService; private invoicesService; private usageService; /** * Customer ID to display billing information for */ customerId: string; subscription: SubscriptionWithRelations | null; paymentMethods: PaymentMethod[]; recentInvoices: Invoice[]; usageSummaries: UsageSummary[]; loading: boolean; error: string | null; loadingPaymentMethods: boolean; loadingInvoices: boolean; private destroy$; constructor(subscriptionsService: SubscriptionsService, paymentMethodsService: PaymentMethodsService, invoicesService: InvoicesService, usageService: UsageService); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; loadBillingData(): void; private loadUsageData; /** * Handle upgrade button click */ onUpgradeClicked(): void; /** * Remove a payment method */ removePaymentMethod(paymentMethodId: string): void; /** * Set payment method as default */ setDefaultPaymentMethod(paymentMethodId: string): void; /** * Get payment method display text */ getPaymentMethodDisplay(pm: PaymentMethod): string; /** * Get payment method expiry display */ getExpiryDisplay(pm: PaymentMethod): string; /** * Format invoice date */ formatDate(dateString: string): string; /** * Format currency amount */ formatAmount(amount: string, currency: string): string; /** * Get invoice status class */ getInvoiceStatusClass(status: string): string; /** * Download invoice PDF */ downloadInvoice(invoice: Invoice): void; /** * Format usage value */ formatUsage(value: string): string; /** * Track by function for payment methods */ trackByPaymentMethodId(index: number, pm: PaymentMethod): string; /** * Track by function for invoices */ trackByInvoiceId(index: number, invoice: Invoice): string; /** * Track by function for usage summaries */ trackByUsageId(index: number, usage: UsageSummary): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }