import { ApiSecurity, ApiUrl, AppDetails } from '../../shared'; import { Tier } from './types/tiers'; import { AvailableProducts, CouponCodeData, CustomerBillingInfo, DisplayPrice, Invoice, InvoicePayload, PaymentMethod, RedeemCodePayload, UpdateSubscriptionPaymentMethod, UserSubscription, UserType } from './types/types'; export declare class Payments { private readonly client; private readonly appDetails; private readonly apiSecurity; static client(apiUrl: ApiUrl, appDetails: AppDetails, apiSecurity: ApiSecurity): Payments; private constructor(); getSetupIntent(userType?: UserType): Promise<{ clientSecret: string; }>; getDefaultPaymentMethod(userType?: UserType): Promise; getInvoices({ subscriptionId, userType, startingAfter, limit, }: InvoicePayload): Promise; getPromoCodesUsedByUser(): Promise<{ usedCoupons: string[]; }>; getUserSubscription(userType?: UserType): Promise; fetchPromotionCodeByName(priceId: string, promotionCodeName: string): Promise; getPrices(currency?: string, userType?: UserType): Promise; applyRedeemCode(payload: RedeemCodePayload): Promise; updateSubscriptionPaymentMethod(payload: UpdateSubscriptionPaymentMethod): Promise; updateSubscriptionPrice({ priceId, couponCode, userType, }: { priceId: string; couponCode?: string; userType: UserType; }): Promise<{ userSubscription: UserSubscription; request3DSecure: boolean; clientSecret: string; }>; updateWorkspaceMembers(workspaceId: string, subscriptionId: string, updatedSeats: number): Promise; applyCancellationTrial(): Promise; cancelSubscriptionEarly(): Promise<{ clientSecret: string; }>; cancelSubscription(userType?: UserType): Promise; reactivateUserSubscription(): Promise; updateCustomerBillingInfo(payload: CustomerBillingInfo): Promise; /** * Gets the available products from the user * @returns an object containing available products */ checkUserAvailableProducts(): Promise; /** * Gets product information based on the user's subscription tier. * * @param {UserType} [userType] - The type of user for which to query product information. * If not specified, UserType.Individual will be used by default. * @returns {Promise} A promise that resolves with the product information * available for the specified tier. * * @example * // Get products for an individual user tier (default) * const individualProducts = await getUserTier(); * * @example * // Get products for a business user tier * const businessProducts = await getUserTier(UserType.Business); */ getUserTier(userType?: UserType): Promise; /** * Returns the needed headers for the module requests * @private */ private headers; }