/** * Tenancy Configuration Types */ import type { IsolationConfig, DatabaseIsolationConfig, StorageIsolationConfig } from './isolation.js'; import type { TenantQuotas, TenantPlan } from './tenant.js'; /** * Plan configuration */ export interface PlanConfig { /** Plan ID */ id: TenantPlan; /** Plan name */ name: string; /** Plan description */ description?: string; /** Default quotas for this plan */ quotas: TenantQuotas; /** Features enabled for this plan */ features?: Record; /** Monthly price (in cents) */ priceMonthly?: number; /** Yearly price (in cents) */ priceYearly?: number; } /** * Tenancy configuration */ export interface TenancyConfig { /** Enable multi-tenancy */ enabled: boolean; /** Isolation configuration */ isolation: IsolationConfig; /** Database isolation */ database?: DatabaseIsolationConfig; /** Storage isolation */ storage?: StorageIsolationConfig; /** Available plans */ plans?: PlanConfig[]; /** Default plan for new tenants */ defaultPlan?: TenantPlan; /** Enforce quotas */ enforceQuotas?: boolean; /** Allow custom domains */ allowCustomDomains?: boolean; /** Require email verification for new tenants */ requireVerification?: boolean; } /** * Tenancy config input (partial for overrides) */ export interface TenancyConfigInput { enabled?: boolean; isolation?: Partial; database?: Partial; storage?: Partial; plans?: PlanConfig[]; defaultPlan?: TenantPlan; enforceQuotas?: boolean; allowCustomDomains?: boolean; requireVerification?: boolean; } /** * Tenancy environment config */ export interface TenancyEnvConfig { /** Base tenancy config */ tenancy: TenancyConfig; } //# sourceMappingURL=config.d.ts.map