import Stripe from "stripe";
import type { BillingService } from "./billing-service";
export declare class StripeBillingService implements BillingService {
    private stripe;
    constructor();
    createCustomer(args: Parameters<BillingService["createCustomer"]>[0]): Promise<{
        stripeCustomerId: string;
    }>;
    createPaymentIntent(args: Parameters<BillingService["createPaymentIntent"]>[0]): Promise<{
        id: string;
        client_secret: string | null;
    }>;
    createOneTimeCheckout(args: {
        priceId: string;
        quantity: number;
        successUrl: string;
        cancelUrl: string;
        metadata?: Record<string, string>;
    }): Promise<{
        checkoutUrl: string | null;
        sessionId: string;
    }>;
    createSubscriptionCheckout(args: Parameters<BillingService["createSubscriptionCheckout"]>[0]): Promise<{
        checkoutUrl: string | null;
        sessionId: string;
    }>;
    createPrice(args: Parameters<BillingService["createPrice"]>[0]): Promise<{
        priceId: string;
    }>;
    handleSubscriptionCreation(subscriptionId: string): Promise<void>;
    handleSubscriptionCancel(subscriptionId: string): Promise<void>;
    handleSubscriptionUpdate(args: Parameters<BillingService["handleSubscriptionUpdate"]>[0]): Promise<void>;
    handleEndTrial(subscriptionId: string): Promise<void>;
    checkoutSessionIsPaid(paymentId: string): Promise<boolean>;
    getSubscriptionStatus(subscriptionId: string): Promise<Stripe.Subscription.Status | null>;
    getCheckoutSession(checkoutSessionId: string): Promise<Stripe.Response<Stripe.Checkout.Session>>;
    getCustomer(customerId: string): Promise<Stripe.Response<Stripe.Customer | Stripe.DeletedCustomer>>;
    getSubscriptions(customerId: string): Promise<Stripe.Subscription[]>;
    updateCustomer(args: Parameters<BillingService["updateCustomer"]>[0]): Promise<void>;
    getPrice(priceId: string): Promise<Stripe.Response<Stripe.Price>>;
}
//# sourceMappingURL=stripe-billling-service.d.ts.map