import { Observable } from 'rxjs'; import { SubtrakService } from './subtrak.service'; import { PaymentMethod } from '../models'; import * as i0 from "@angular/core"; /** * Service for managing customer payment methods * * @example * ```typescript * constructor(private paymentMethods: PaymentMethodsService) {} * * // List payment methods * this.paymentMethods.listPaymentMethods('cus_123').subscribe(methods => { * console.log('Payment methods:', methods); * }); * * // Add payment method (after Stripe tokenization) * this.paymentMethods.addPaymentMethod('cus_123', 'pm_stripe_token').subscribe(); * * // Set default * this.paymentMethods.setDefaultPaymentMethod('pm_123').subscribe(); * ``` */ export declare class PaymentMethodsService { private subtrak; constructor(subtrak: SubtrakService); /** * List all payment methods for a customer * * @param customerId - Customer ID * @returns Observable of payment methods array */ listPaymentMethods(customerId: string): Observable; /** * Get a specific payment method by ID * * @param paymentMethodId - Payment method ID * @returns Observable of the payment method */ getPaymentMethod(paymentMethodId: string): Observable; /** * Add a new payment method for a customer * * @param customerId - Customer ID * @param paymentMethodToken - Payment method token from provider (Stripe, Paymob) * @param setAsDefault - Whether to set as default payment method * @returns Observable of the created payment method */ addPaymentMethod(customerId: string, provider: string, providerMethodId: string, type: string, setAsDefault?: boolean): Observable; /** * Set a payment method as the default * * @param paymentMethodId - Payment method ID * @returns Observable of void */ setDefaultPaymentMethod(paymentMethodId: string): Observable; /** * Remove a payment method * * @param paymentMethodId - Payment method ID * @returns Observable of void */ removePaymentMethod(paymentMethodId: string): Observable; /** * Get the default payment method for a customer * * @param customerId - Customer ID * @returns Observable of the default payment method (or null if none) */ getDefaultPaymentMethod(customerId: string): Observable; /** * Check if customer has any payment methods * * @param customerId - Customer ID * @returns Observable of boolean */ hasPaymentMethod(customerId: string): Observable; /** * Get payment method count for a customer * * @param customerId - Customer ID * @returns Observable of count */ getPaymentMethodCount(customerId: string): Observable; /** * Get Stripe publishable key for adding payment methods * * This is needed to initialize Stripe Elements on the frontend * * @returns Observable of Stripe publishable key */ getStripePublishableKey(): Observable; /** * Get Paymob public key for adding payment methods * * This is needed to initialize Paymob on the frontend * * @param country - Country code (EG, KSA, UAE, etc.) * @returns Observable of Paymob public key */ getPaymobPublicKey(country: string): Observable; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }