import { DyNTS_ScopedConfig_Level } from '../_enums/dynts-scoped-config-level.enum'; import { DyNTS_ScopedConfig } from '../_models/data-models/dynts-scoped-config.data-model'; import { DyNTS_ScopedConfigResolveContext, DyNTS_ScopedConfigResolvedValue, DyNTS_ScopedConfigResolveOptions, DyNTS_ScopedConfigSetOptions, DyNTS_ScopedConfigValue } from '../_models/interfaces/dynts-scoped-config.interface'; /** * `DyNTS_ScopedConfig_ControlService` — a DB-backed, scoped config GENERIKUS feloldó-engine (BFR-AM-004). * * Singleton. Domain-agnosztikus: NINCS beépített kulcs-katalógus / default — a katalógus a FOGYASZTÓ * dolga (a FAM `FAM_Config_ControlService` ennek vékony fogyasztója lesz). A bedrock CSAK a generikus * precedencia-engine + a tárolás + a rövid-TTL cache. * * **Precedencia (a legspecifikusabb nyer):** `scope (leaf→root, a legmélyebb találat) > table > global * > builtinDefault` (utóbbi a hívó által átadott fallback). A `resolve(key, opts)` egy kulcsot old fel; * a `resolveAll(ctx)` az összes konfigurált kulcsot egy Mongo-körrel; a `set(level, key, value, opts)` * archive-old-active + új aktív rekord + cache-invalidálás. * * **FIGYELEM (memory: dynts_dataservice_eager_resolve):** NEM tartunk élő `DyNTS_ScopedConfig_DataService` * mezőt (eager DB-resolve a base-ctor-ban) — minden DB-művelet előtt lazy `new ...DataService`. */ export declare class DyNTS_ScopedConfig_ControlService { private static _instance; /** Default issuer a config-műveletekhez. */ private readonly issuer; /** Rövid-TTL memória-cache (kulcs: kontextus-szelet; `set` invalidálja). */ private cache; /** A cache TTL ms-ben (~5s; rövid, hogy a hot-path olcsó legyen, de a `set` után friss). */ private cacheTtlMs; static getInstance(): DyNTS_ScopedConfig_ControlService; /** * Egy kulcs feloldása a legspecifikusabb beállított értékre. A precedencia: * (1) SCOPE szint a `scopePath` LEVÉBŐL a gyökér felé (az első/legmélyebb találat nyer), * (2) TABLE szint, (3) GLOBAL szint, (4) a hívó által átadott `builtinDefault` (ha van). * * A `scopePath` canonical formában érkezik (a fogyasztó read/write-path-ja oldotta fel). */ resolve(key: string, options?: DyNTS_ScopedConfigResolveOptions): Promise>; /** * A teljes effektív config egy adott kontextusra (batch). EGY Mongo-kör (cache-elt), majd memóriában * merge: minden KONFIGURÁLT kulcsra a feloldott érték + forrás-szint. A hot-path (read/write) ezt * használja, nem per-key kört. A builtin-only kulcsok NEM jelennek meg (nincs katalógus a bedrock-ban * — azokat a fogyasztó iterálja a saját katalógusából a `resolve`-on át). */ resolveAll(context?: DyNTS_ScopedConfigResolveContext): Promise<{ [key: string]: DyNTS_ScopedConfigResolvedValue; }>; /** * A `resolve` mag (memóriában, a betöltött rekord-halmazon). Külön metódus, hogy a `resolveAll` is * ezt használja (egyetlen Mongo-kör után minden kulcsra). A `builtinDefault` a hívó fallback-je. */ private resolveFromRecords; /** Egy DB-rekordot a feloldott-érték shape-re (a forrás-szinttel + audittal). */ private toResolved; /** * A kontextusra releváns aktív rekordok betöltése EGY Mongo-körrel, cache-elve. A filter a global + * (ha van) table + a scopePath összes scopeId-jára szűkít — a merge memóriában fut. `set` invalidál. */ private loadEffectiveRecords; /** A cache-kulcs egy kontextus-szeletre (table + a scopePath scopeId-lánca). */ private cacheKey; /** A teljes cache invalidálása (`set` után). */ invalidateCache(): void; /** A cache TTL felülírása (ms); a fogyasztó hangolhatja (pl. a saját `reference.cacheTtlMs`-éből). */ setCacheTtlMs(ttlMs: number): void; /** * Egy config-érték beállítása egy adott szinten (BFR-AM-004). A `set`: * (1) az ugyanazon `(level,tableScope,scopeId,key)` kulcson lévő AKTÍV régi rekordot soft-delete-eli * (archív → history), (2) az új aktív rekordot kiírja (a `value` Mixed), (3) invalidálja a cache-t. * * **Domain-agnosztikus:** NINCS típus-/tartomány-validáció (az a fogyasztó katalógusának dolga); a * bedrock csak a feloldási-kulcs konzisztenciáját biztosítja (table-/scope-szinten a megfelelő * scope-azonosító jelenléte kötelező). */ set(level: DyNTS_ScopedConfig_Level, key: string, value: unknown, options?: DyNTS_ScopedConfigSetOptions): Promise; /** * A feloldási-kulcs minimál-konzisztenciája (NEM domain-validáció): table-/scope-szinten kötelező a * `tableScope`, scope-szinten a `scopeId`. Ezek nélkül a feloldási-kulcs értelmetlen lenne. */ private assertLevelConsistency; /** * Egy feloldási-kulcs felülírás-historyja: a soft-delete-elt (archív) régi rekordok az archív * collection-ből. Audit-trail / rollback-alap. (A FOGYASZTÓ presetjei/auditja erre épülhetnek.) */ getHistory(level: DyNTS_ScopedConfig_Level, key: string, options?: DyNTS_ScopedConfigSetOptions): Promise; } //# sourceMappingURL=dynts-scoped-config.control-service.d.ts.map