import type Stripe from "stripe";
export interface BillingService {
    checkoutSessionIsPaid(paymentId: string): Promise<boolean>;
    handleSubscriptionCancel(subscriptionId: string): Promise<void>;
    handleSubscriptionCreation(subscriptionId: string): Promise<void>;
    handleSubscriptionUpdate(args: {
        subscriptionId: string;
        subscriptionItemId: string;
        membershipCount: number;
    }): Promise<void>;
    createCustomer(args: {
        email: string;
        metadata?: Record<string, string>;
    }): Promise<{
        stripeCustomerId: string;
    }>;
    createPaymentIntent(args: {
        customerId: string;
        amount: number;
        metadata?: Record<string, string | number>;
    }): Promise<{
        id: string;
        client_secret: string | null;
    }>;
    createSubscriptionCheckout(args: {
        customerId: string;
        successUrl: string;
        cancelUrl: string;
        priceId: string;
        quantity: number;
        metadata?: Record<string, string | number>;
        mode?: "subscription" | "setup" | "payment";
    }): Promise<{
        checkoutUrl: string | null;
        sessionId: string;
    }>;
    createPrice(args: {
        amount: number;
        currency: string;
        interval: "month" | "year";
        nickname?: string;
        productId: string;
        metadata?: Record<string, string | number>;
    }): Promise<{
        priceId: string;
    }>;
    getSubscriptionStatus(subscriptionId: string): Promise<Stripe.Subscription.Status | null>;
}
//# sourceMappingURL=billing-service.d.ts.map