import type { UserSubscription, FeatureAccessLevel, SubscriptionPlan, FeatureDefinition } from "../components/atoms/SubscriptionGuard/SubscriptionGuard.types"; /** * Hook for managing subscription state and checking feature access * Follows project conventions: returns { data, fns } */ export declare const useSubscription: (overrideSubscription?: UserSubscription) => { readonly data: { subscription: { status: "none" | "paused" | "active" | "trialing" | "past_due" | "canceled" | "unpaid" | "incomplete" | "incomplete_expired"; plan: "standard" | "complete" | "free" | "essential" | "management" | "basic" | "advanced" | "unlimit" | "enterprise"; isAdmin: boolean; trialEndsAt?: string | null | undefined; currentPeriodEnd?: string | null | undefined; }; isActive: boolean; isTrialing: boolean; trialDaysRemaining: number | null; currentPlan: "standard" | "complete" | "free" | "essential" | "management" | "basic" | "advanced" | "unlimit" | "enterprise"; currentStatus: "none" | "paused" | "active" | "trialing" | "past_due" | "canceled" | "unpaid" | "incomplete" | "incomplete_expired"; isAdmin: boolean; planDisplayName: string; nextPlan: "standard" | "complete" | "free" | "essential" | "management" | "basic" | "advanced" | "unlimit" | "enterprise" | null; }; readonly fns: { hasAccess: (requiredLevel: FeatureAccessLevel) => boolean; needsUpgrade: (requiredLevel: FeatureAccessLevel) => boolean; checkFeatures: (features: FeatureDefinition[]) => Record; getRequiredPlanForFeatures: (features: FeatureDefinition[]) => SubscriptionPlan; getPlanDisplayName: (plan: SubscriptionPlan) => string; updateSubscription: (updates: Partial) => void; }; }; export default useSubscription;