import { DynamicModule, Type } from "@nestjs/common"; import { ContentExtensionConfig } from "./content/interfaces/content.extension.interface"; import { ReferralModuleConfig } from "./referral/interfaces/referral.config.interface"; import { HandbookModuleConfig } from "./handbook/interfaces/handbook.config.interface"; import { HowToModuleConfig } from "./how-to/interfaces/how-to.config.interface"; import { UserActivityModuleConfig } from "./user-activity/interfaces/user-activity.config.interface"; /** * Configuration options for FoundationsModule. */ export interface FoundationsModuleConfig { /** Optional extension for Content module to add additional relationships */ contentExtension?: ContentExtensionConfig; /** Optional configuration for the referral feature module */ referral?: ReferralModuleConfig; /** Optional configuration for the user-activity feature module */ userActivity?: UserActivityModuleConfig; /** Optional configuration for the handbook documentation RAG */ handbook?: HandbookModuleConfig; /** Optional configuration for the how-to feature module (opt-in public routes) */ howTo?: HowToModuleConfig; /** * Foundation module classes to exclude from registration. * Default [] keeps all modules registered (neural-erp behavior unchanged). * * Dynamic modules are excluded by the same class reference as static ones: * `exclude: [ContentModule, UserActivityModule]`. */ exclude?: Type[]; } /** * FoundationsModule - Centralized module for all foundation/domain modules * * Foundation modules provide business domain logic: * - User management (UserModule) * - Company management (CompanyModule) * - Authentication (AuthModule) * - Content & document processing (ContentModule, ChunkModule, ChunkerModule) * - Knowledge graph entities (AtomicFactModule, KeyConceptModule) * - Notifications (NotificationModule, PushModule) * - And more... * * @example * ```typescript * // Without content extension * FoundationsModule.forRoot() * * // With content extension * FoundationsModule.forRoot({ * contentExtension: { * additionalRelationships: [ * { model: topicMeta, relationship: 'HAS_KNOWLEDGE', direction: 'in', cardinality: 'many' }, * ], * }, * }) * ``` */ export declare class FoundationsModule { /** * Configure FoundationsModule with optional extensions. * * @param config - Optional configuration for foundation modules * @returns DynamicModule with all foundation modules configured */ static forRoot(config?: FoundationsModuleConfig): DynamicModule; } //# sourceMappingURL=foundations.modules.d.ts.map