import NodeCache from 'node-cache'; import type { JSONSchema } from 'mongodb-schema'; type CacheOptions = { databaseCollectionsTTL: number; collectionSchemaTTL: number; aggregationSchemaTTL: number; }; export interface AutocompletionContext { currentDatabaseAndConnection(): { connectionId: string; databaseName: string; } | undefined; databasesForConnection(connectionId: string): Promise; collectionsForDatabase(connectionId: string, databaseName: string): Promise; schemaInformationForCollection(connectionId: string, databaseName: string, collectionName: string): Promise; cacheOptions?: Partial; } export declare class CachingAutocompletionContext implements AutocompletionContext { private readonly delegate; private readonly cache; readonly cacheOptions: CacheOptions; constructor(delegate: AutocompletionContext, cache: NodeCache); static caching(delegate: AutocompletionContext): AutocompletionContext; currentDatabaseAndConnection(): { connectionId: string; databaseName: string; } | undefined; databasesForConnection(connectionId: string): Promise; collectionsForDatabase(connectionId: string, databaseName: string): Promise; schemaInformationForCollection(connectionId: string, databaseName: string, collectionName: string): Promise; } export {}; //# sourceMappingURL=autocompletion-context.d.ts.map