/**
 * @fileoverview User subscription update utilities
 * @description Functions for updating user subscription data
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
/**
 * Subscription data structure
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export interface SubscriptionData {
    tier: string;
    status: 'active' | 'canceled' | 'past_due' | 'trialing' | 'incomplete';
    subscriptionEnd: string | null;
    cancelAtPeriodEnd?: boolean;
    subscriptionId?: string | null;
    customerId?: string;
}
/**
 * Platform-agnostic auth provider interface
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export interface AuthProvider {
    getUser(userId: string): Promise<{
        customClaims?: Record<string, unknown>;
    }>;
    setCustomUserClaims(userId: string, claims: Record<string, unknown>): Promise<void>;
}
/**
 * Platform-agnostic subscription update using dependency injection
 * Works on Firebase Functions, Vercel, AWS Lambda, etc.
 *
 * @version 0.1.0
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
export declare function updateUserSubscription(userId: string, subscriptionData: SubscriptionData, authProvider: AuthProvider): Promise<void>;
