import { PurchasesOfferings } from '../revenuecat-types'; import { CustomerInfo, PurchaseSuccessResult, PurchasesConfig } from '../types'; declare class PurchasesService { private adapter; private initializationPromise; private stripePresenter; private config; private logEvent; private createError; private selectAdapter; /** * Initialize the purchases service * This is idempotent - multiple calls are safe * @param config - Optional configuration object * @param config.debug - Enable debug logging (default: false) */ initialize(config?: PurchasesConfig): Promise; private _doInitialize; private ensureInitialized; /** * Get current offerings */ getOfferings(): PurchasesOfferings; /** * Get current customer info */ getCustomerInfo(): CustomerInfo | null; /** * Check if user has premium access */ isPremium(): boolean; /** * Check if the current user is anonymous */ isAnonymous(): boolean; /** * Get current user ID */ getUserId(): string | null; /** * Subscribe to state changes */ subscribe(listener: (state: any) => void): () => void; /** * Refresh customer info from backend */ refreshCustomerInfo(): Promise; /** * Purchase a package */ purchase(packageId: string, manual?: boolean, basePlanId?: string): Promise; /** * Restore purchases (native only) */ restore(): Promise; /** * Get manage subscription URL */ getManageSubscriptionUrl(): Promise; /** * Log in with a new user ID * If the current user is anonymous, this will alias (merge) them with the new user */ logIn(newUserId: string): Promise; /** * Log out current user */ logOut(): Promise; /** * Auto-sync receipts in the background (called during initialization) * This ensures the backend always has the latest purchase state */ private autoSyncReceipts; /** * Register a Stripe presenter component (for backward compatibility) */ registerStripePresenter(presenter: { requestPresentation: (request: any) => void; } | null): void; /** * Destroy the service and clean up resources */ destroy(): void; } export declare const purchasesService: PurchasesService; export {}; //# sourceMappingURL=PurchasesService.d.ts.map