import { BaseConfigInterface } from "./interfaces/base.config.interface"; import { ConfigChunkQueuesInterface } from "./interfaces/config.chunk.queues.interface"; import { ConfigContentTypesInterface } from "./interfaces/config.content.types.interface"; import { ConfigJobNamesInterface } from "./interfaces/config.job.names.interface"; import { ConfigOperatorInterface } from "./interfaces/config.operator.interface"; import { ConfigPromptsInterface } from "./interfaces/config.prompts.interface"; import { ConfigResponderInterface } from "./interfaces/config.responder.interface"; import { ConfigSummariserInterface } from "./interfaces/config.summariser.interface"; /** * How many chunk jobs the CHUNK worker processes at once. Default 50 — * historically a hardcoded literal on `ChunkProcessor`'s `@Processor` decorator. * * Exported as a MODULE-LEVEL CONSTANT rather than only as a config field because * `@Processor(queue, { concurrency })` options are evaluated at DECORATION time, * i.e. when the class is first loaded — long before NestJS instantiates * `ConfigService`, so the processor cannot inject the value it needs. Resolving * it here keeps the sole `process.env` read inside this file, which is the only * place in the codebase allowed to touch the environment directly. * * The read is safe at import time: applications call `dotenv.config(...)` before * importing the package (see `bootstrap`'s docblock), and TypeScript's CommonJS * emit preserves that statement order. * * A non-numeric or non-positive value falls back to the default rather than * producing `NaN`, which BullMQ would silently treat as unbounded. */ export declare const CHUNK_QUEUE_CONCURRENCY: number; /** * Options for createBaseConfig */ export interface BaseConfigOptions { /** * Application name used in logging labels and service names * @default 'nestjs-app' */ appName?: string; /** * Environment type override * @default 'api' */ environmentType?: "api" | "worker"; /** * Custom prompts for AI agents (GraphCreator, Contextualiser, Responder, Summariser). * All prompts are optional - the library includes working defaults. */ prompts?: ConfigPromptsInterface; /** Responder branch toggles (graph / contextualiser / drift). All default to enabled. */ responder?: ConfigResponderInterface; /** Summariser behaviour switches (empty-content sentinel, TL;DR sanitizing). */ summariser?: ConfigSummariserInterface; /** * Operator agent configuration (approval gates). * Optional - `approvalTtlDays` defaults to 7 when omitted. */ operator?: ConfigOperatorInterface; /** * Additional queue IDs for chunk processing. * The library always registers its own CHUNK queue. * Use this to register additional queues that ChunkService needs to add jobs to. */ chunkQueues?: ConfigChunkQueuesInterface; /** * Content type labels for multi-label content queries. * These are the Neo4j labels used for content nodes (e.g., ["Article", "Document"]). */ contentTypes?: ConfigContentTypesInterface; /** * Job names for BullMQ processors. * Defines the job names that processors use to match incoming jobs. */ jobNames?: ConfigJobNamesInterface; } /** * Creates the base configuration object from environment variables. * * This function loads all standard configuration from environment variables. * Use it in your NestJS ConfigModule: * * @example * ```typescript * // Simple usage - just use the library config * ConfigModule.forRoot({ * isGlobal: true, * load: [() => createBaseConfig({ appName: 'my-app' })], * }) * * // Extended usage - add app-specific config * ConfigModule.forRoot({ * isGlobal: true, * load: [() => ({ * ...createBaseConfig({ appName: 'my-app' }), * myCustomSetting: process.env.MY_SETTING, * })], * }) * ``` */ export declare function createBaseConfig(options?: BaseConfigOptions): BaseConfigInterface; /** * Pre-configured base configuration instance. * Uses environment variables to configure all services. * * This is the recommended way to use the library's configuration * when you don't need to customize the config options. * * @example * ```typescript * import { baseConfig } from '@carlonicora/nestjs-neo4jsonapi'; * * // Use in ThrottlerModule * ThrottlerModule.forRoot({ * throttlers: [ * { ttl: baseConfig.rateLimit.ttl, limit: baseConfig.rateLimit.limit }, * ], * }) * * // Use in CoreModule.forRoot() - automatically uses baseConfig internally * CoreModule.forRoot() * ``` */ export declare const baseConfig: BaseConfigInterface; //# sourceMappingURL=base.config.d.ts.map