import { ModuleMetadata, Type } from '@nestjs/common/interfaces'; export interface TenancyModuleOptions extends Record { isTenantFromSubdomain?: boolean; tenantIdentifier?: string; uri: (uri: string) => Promise | string; validator?: (tenantId: string) => TenancyValidator; options?: any; whitelist?: any; forceCreateCollections?: boolean; } export interface TenancyOptionsFactory { createTenancyOptions(): Promise | TenancyModuleOptions; } export interface TenancyModuleAsyncOptions extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | TenancyModuleOptions; inject?: any[]; } export interface TenancyValidator { setTenantId(tenantId: string): TenancyValidator; validate(): Promise; }