import type { ILinkAuthenticationElementManager, IStripeService, LinkAuthenticationElementState } from './interfaces'; import type { StripeLinkAuthenticationElement, StripeLinkAuthenticationElementOptions } from '@stripe/stripe-js'; /** * Link Authentication Element Manager * Manages Stripe Link Authentication Element for email collection and Link authentication * with dependency injection of StripeService */ export declare class LinkAuthenticationElementManager implements ILinkAuthenticationElementManager { private stripeService; private linkAuthenticationElement?; private store; /** * Constructor with dependency injection * @param stripeService - Injected Stripe service instance */ constructor(stripeService: IStripeService); /** * Get current link authentication element state (reactive) */ getState(): LinkAuthenticationElementState; /** * Register state change listener * @param key - State property to watch * @param callback - Callback function invoked when property changes * @returns Unsubscribe function */ onChange(key: K, callback: (newValue: LinkAuthenticationElementState[K]) => void): () => void; /** * Initialize and mount link authentication element to DOM * @param containerElement - Parent element containing mount point * @param options - Optional configuration for Link Authentication Element * @returns Promise resolving to link authentication element instance */ initialize(containerElement: HTMLElement, options?: StripeLinkAuthenticationElementOptions): Promise; /** * Get mounted link authentication element instance */ getElement(): StripeLinkAuthenticationElement | undefined; /** * Set error message (triggers reactivity) */ setError(message: string): void; /** * Clear error message (triggers reactivity) */ clearError(): void; /** * Unmount link authentication element */ unmount(): void; }