/**
 * Provider-Agnostic Billing Gateway Types
 *
 * These types decouple consumers from specific payment provider SDKs (Stripe, Polar, etc.).
 * Gateway implementations map provider-specific types to these generic results.
 */
export interface CheckoutSessionResult {
    id: string;
    url: string | null;
}
export interface PortalSessionResult {
    url: string;
}
export interface SubscriptionResult {
    id: string;
    status: string;
    cancelAtPeriodEnd: boolean;
}
export interface CustomerResult {
    id: string;
    email: string | null;
    name: string | null;
}
export interface WebhookEventResult {
    id: string;
    type: string;
    data: Record<string, unknown>;
}
export interface CreateCheckoutParams {
    teamId: string;
    planSlug: string;
    billingPeriod: 'monthly' | 'yearly';
    successUrl: string;
    cancelUrl: string;
    customerEmail?: string;
    customerId?: string;
}
export interface CreatePortalParams {
    customerId: string;
    returnUrl: string;
}
export interface CreateCustomerParams {
    email: string;
    name?: string;
    metadata?: Record<string, string>;
}
export interface UpdateSubscriptionParams {
    subscriptionId: string;
    newPriceId: string;
    /** Proration behavior when changing plans. Default: 'create_prorations' */
    prorationBehavior?: 'create_prorations' | 'none' | 'always_invoice';
}
export interface CreateOneTimeCheckoutParams {
    teamId: string;
    priceId: string;
    quantity?: number;
    successUrl: string;
    cancelUrl: string;
    customerEmail?: string;
    customerId?: string;
    metadata?: Record<string, string>;
}
//# sourceMappingURL=types.d.ts.map