editia-core
Version:
Core services and utilities for Editia applications - Authentication, Monetization, Video Generation Types, and Database Management
45 lines • 1.57 kB
TypeScript
/**
* Editia Monetization Hook for React Native
*
* This hook provides a unified interface for monetization features including:
* - Subscription plan management
* - Usage tracking
* - Feature access control
* - Paywall presentation
*/
import { PlanIdentifier, UserUsage, SubscriptionPlan } from '../types';
export interface EditiaMonetizationConfig {
supabaseClient: any;
environment?: 'development' | 'production';
userId?: string;
}
export interface EditiaMonetizationState {
isLoading: boolean;
currentPlan: PlanIdentifier;
userUsage: UserUsage | null;
plans: Record<string, SubscriptionPlan> | null;
showPaywall: boolean;
isPurchasing: boolean;
hasOfferingError: boolean;
isReady: boolean;
}
export interface EditiaMonetizationActions {
presentPaywall: () => Promise<boolean>;
setShowPaywall: (show: boolean) => void;
refreshUsage: () => Promise<void>;
checkFeatureAccess: (featureId: string) => boolean;
getFeatureAccessInfo: (featureId: string) => {
hasAccess: boolean;
requiredPlan: PlanIdentifier | null;
remainingUsage: number;
totalLimit: number;
};
}
export type UseEditiaMonetizationReturn = EditiaMonetizationState & EditiaMonetizationActions & {
videosRemaining: number;
sourceVideosRemaining: number;
voiceClonesRemaining: number;
accountAnalysisRemaining: number;
};
export declare const useEditiaMonetization: (config: EditiaMonetizationConfig) => UseEditiaMonetizationReturn;
//# sourceMappingURL=useEditiaMonetization.d.ts.map