import type { OdooModel } from '@marcfargas/odoo-introspection'; import { Introspector } from '@marcfargas/odoo-introspection'; export interface CacheEntry { value: T; expiresAt: number; } /** Raw ir.model row — used by odoo://models and odoo_discover. */ export interface IrModelInfo { id: number; name: string; model: string; modules: string; } /** Raw ir.module.module row — used by odoo://modules and odoo_discover. */ export interface IrModuleInfo { id: number; name: string; shortdesc: string; summary: string; category_id: [number, string] | false; } export declare class McpCache { private readonly introspector; private readonly now; private introspectorModelEntry?; private irModelEntry?; private irModuleEntry?; private schemaEntries; constructor(introspector: Introspector, now?: () => number); /** Introspector-based model list (used by schema cache internals). */ getModels(): Promise; /** * All ir.model rows (non-transient) — for odoo://models and odoo_discover. * Fetched via the provided async fetcher; cached for 10 min. */ getIrModels(fetcher: () => Promise): Promise; /** * Installed ir.module.module rows — for odoo://modules and odoo_discover. * Fetched via the provided async fetcher; cached for 10 min. */ getIrModules(fetcher: () => Promise): Promise; /** * Per-model field schema cache (fetched via fields_get). * LRU-ish: evicts the oldest entry when MAX_SCHEMA_ENTRIES is reached. */ getSchema(model: string, fetcher: () => Promise): Promise; invalidateAll(): void; } //# sourceMappingURL=cache.d.ts.map