/** * TenantManager — SaaS 多租户管理器 * * 1. 用户注册/认证/管理 * 2. API Key 生成/验证/吊销 * 3. 配额追踪/限制 * 4. 用量记录/计费 */ import type { SaasConfig, TenantAccount, ApiPermission, PlanTier, QuotaType, QuotaLimit, PlanQuotas, MonthlyBill, TenantSettings } from "./types.js"; export declare class TenantManager { private config; private data; private tenantMap; private keyMap; constructor(config?: Partial); /** 注册新用户 */ createTenant(email: string, name: string, plan?: PlanTier): TenantAccount; /** 获取用户 */ getTenant(id: string): TenantAccount | undefined; /** 通过邮箱查找 */ getTenantByEmail(email: string): TenantAccount | undefined; /** 更新套餐 */ upgradePlan(tenantId: string, newPlan: PlanTier): boolean; /** 暂停账户 */ suspendTenant(tenantId: string): boolean; /** 更新设置 */ updateSettings(tenantId: string, settings: Partial): boolean; /** 列出所有租户 */ listTenants(): TenantAccount[]; /** 通过 API Key 验证并返回租户 */ authenticate(apiKey: string): TenantAccount | null; /** 创建新 API Key */ createApiKey(tenantId: string, name: string, permissions?: ApiPermission[]): string | null; /** 吊销 API Key */ revokeApiKey(tenantId: string, apiKey: string): boolean; /** 检查权限 */ hasPermission(apiKey: string, permission: ApiPermission): boolean; /** 检查配额是否允许 */ checkQuota(tenantId: string, type: QuotaType, amount?: number): { allowed: boolean; remaining: number; }; /** 记录用量 */ recordUsage(tenantId: string, type: QuotaType, amount?: number, metadata?: Record): void; /** 获取当月用量 */ getMonthlyUsage(tenantId: string, type?: QuotaType): number; /** 获取所有配额状态 */ getQuotaStatus(tenantId: string): QuotaLimit[]; /** 生成月度账单 */ generateBill(tenantId: string, period?: string): MonthlyBill | null; /** 获取历史账单 */ getBills(tenantId: string): MonthlyBill[]; /** 获取所有套餐定义 */ getPlans(): PlanQuotas[]; /** 获取指定套餐 */ getPlan(tier: PlanTier): PlanQuotas | undefined; getStatus(): { totalTenants: number; activeTenants: number; planDistribution: Record; totalUsageThisMonth: number; }; private generateApiKey; private initQuotas; private load; private save; } //# sourceMappingURL=tenant-manager.d.ts.map