import { EventEmitter } from '../../stencil-public-runtime'; export interface PaymentMethod { id: number; cardType: string; lastFourDigits: string; expiryMonth: number; expiryYear: number; isDefault: boolean; nameOnCard?: string; firstName?: string; lastName?: string; } interface DefaultPaymentMethodPayload { paymentMethodId: number; firstName: string; lastName: string; expiryMonth: number; expiryYear: number; isDefault: boolean; } export declare enum PaymentFlowScreen { LIST = "list", ADD_EDIT = "add_edit", SUCCESS = "success" } export declare class PaymentFlow { gobackButton: boolean; el: HTMLElement; paymentMethodsUpdated: EventEmitter; updateSubscriptionView: EventEmitter; loading: boolean; paymentMethods: PaymentMethod[]; currentScreen: PaymentFlowScreen; editingMethod: PaymentMethod | null; successDetails: { method: PaymentMethod; isNew: boolean; isDefaultChanged: boolean; }; formValues: { cardNumber: string; expDate: string; cvv: string; nameOnCard: string; setAsDefault: boolean; }; internalMethods: PaymentMethod[]; private environmentKey; componentWillLoad(): void; paymentMethodsChanged(newValue: PaymentMethod[]): void; setAsDefault(payload: DefaultPaymentMethodPayload): Promise; /** * Show the add/edit payment method screen */ showAddEditScreen(method?: PaymentMethod | null): void; /** * Show the success screen after adding/editing a payment method */ showSuccessScreen(method: PaymentMethod, isNew: boolean, isDefaultChanged: boolean): void; /** * Cancel adding/editing a payment method */ cancelAddEdit(): void; /** * Handle form input changes */ handleInputChange(event: Event, field: string): void; private setupSpreedly; private createSpreedlyElements; private loadSpreedlyScript; private submitToSpreedly; private processPayment; private fetchPaymentMethods; private setDefaultPaymentMethod; /** * Save a new or edited payment method */ savePaymentMethod(): void; /** * Return to the list screen after success */ finishFlow(): void; componentDidLoad(): Promise; renderListScreen(): any; renderAddEditScreen(): any; renderSuccessScreen(): any; render(): any; } export {};