import { Repository } from 'typeorm'; import { Plan } from './entities/plan.entity'; import { Subscription, SubscriptionStatus } from './entities/subscription.entity'; import { TokenBalance } from './entities/token-balance.entity'; import { TokenUsage } from './entities/token-usage.entity'; export declare class SubscriptionsService { private readonly planRepo; private readonly subscriptionRepo; private readonly tokenBalanceRepo; private readonly tokenUsageRepo; constructor(planRepo: Repository, subscriptionRepo: Repository, tokenBalanceRepo: Repository, tokenUsageRepo: Repository); getPlans(): Promise; getPlanByCode(code: string): Promise; getSubscription(tenantId: string): Promise; createSubscription(tenantId: string, planCode: string): Promise; cancelSubscription(tenantId: string): Promise; getTokenBalance(tenantId: string): Promise; initializeTokenBalance(tenantId: string, tokens: number): Promise; consumeTokens(tenantId: string, tokensToUse: number, action: string, metadata?: { description?: string; model?: string; inputTokens?: number; outputTokens?: number; referenceType?: string; referenceId?: string; }): Promise; addTokens(tenantId: string, tokens: number): Promise; getTokenUsage(tenantId: string, limit?: number): Promise; getSubscriptionStats(tenantId: string): Promise<{ subscription: { plan: string; status: SubscriptionStatus; currentPeriodEnd: Date; daysRemaining: number; cancelAtPeriodEnd: boolean; }; tokens: { available: number; used: number; total: number; }; }>; }