import { PaymentProvider, PaddleProviderConfig, CreateCustomerOptions, Customer, CreateCheckoutOptions, CheckoutSession, CreateSubscriptionOptions, Subscription, UpdateSubscriptionOptions, CreatePortalOptions, PortalSession, Product, Price, WebhookEvent } from '../types.js'; import '@parsrun/types'; /** * @parsrun/payments - Paddle Provider * Edge-compatible Paddle provider using fetch API (Paddle Billing API v2) */ /** * Paddle Payment Provider * Edge-compatible using fetch API (Paddle Billing API v2) * * @example * ```typescript * const paddle = new PaddleProvider({ * apiKey: process.env.PADDLE_API_KEY, * environment: 'sandbox', // or 'production' * webhookSecret: process.env.PADDLE_WEBHOOK_SECRET, * }); * * const checkout = await paddle.createCheckout({ * lineItems: [{ priceId: 'pri_xxx', quantity: 1 }], * successUrl: 'https://example.com/success', * cancelUrl: 'https://example.com/cancel', * mode: 'subscription', * }); * ``` */ declare class PaddleProvider implements PaymentProvider { readonly type: "paddle"; private apiKey; private webhookSecret; private baseUrl; constructor(config: PaddleProviderConfig); private request; createCustomer(options: CreateCustomerOptions): Promise; getCustomer(customerId: string): Promise; updateCustomer(customerId: string, options: Partial): Promise; deleteCustomer(_customerId: string): Promise; private mapCustomer; createCheckout(options: CreateCheckoutOptions): Promise; getCheckout(sessionId: string): Promise; createSubscription(_options: CreateSubscriptionOptions): Promise; getSubscription(subscriptionId: string): Promise; updateSubscription(subscriptionId: string, options: UpdateSubscriptionOptions): Promise; cancelSubscription(subscriptionId: string, cancelAtPeriodEnd?: boolean): Promise; listSubscriptions(customerId: string): Promise; private mapSubscription; createPortalSession(options: CreatePortalOptions): Promise; getProduct(productId: string): Promise; getPrice(priceId: string): Promise; listPrices(productId?: string): Promise; private mapProduct; private mapPrice; private parsePaddleAmount; verifyWebhook(payload: string | Uint8Array, signature: string): Promise; private computeHmacSignature; private secureCompare; private mapEventType; } /** * Create a Paddle provider */ declare function createPaddleProvider(config: PaddleProviderConfig): PaddleProvider; export { PaddleProvider, createPaddleProvider };