import type { config } from '../types/Datatypes.d.ts';
import mongoose, { SchemaDefinition, SchemaDefinitionType } from 'mongoose';
declare class MongoDBConnector {
    private config;
    private db;
    private cache;
    private aggregateCache;
    private session;
    constructor(config: config, maxSize?: number);
    connect(): Promise<void>;
    getMongoose(): Promise<typeof mongoose>;
    createStore<T>(storeName: string, schema: SchemaDefinition<SchemaDefinitionType<T>>): Promise<void>;
    insertItem(storeName: string, documentData: any): Promise<void>;
    insertItems(storeName: string, documentsData: any): Promise<void>;
    findItem<T>(storeName: string, query?: Record<string, any>): Promise<any[]>;
    updateItems<T>(storeName: string, query: Record<string, any>, update: Record<string, any>): Promise<number>;
    deleteStore(storeName: string): Promise<void>;
    alterStore<T, U>(storeName: string, newSchema: SchemaDefinition<SchemaDefinitionType<U>>, changeValues: Record<string, any>): Promise<void>;
    dropItem<T>(storeName: string, itemInfo: Record<string, any>): Promise<void>;
    dropItems<T>(storeName: string, itemInfo: Record<string, any>): Promise<void>;
    truncateStore(storeName: string): Promise<void>;
    findAndPopulateById<T>(storeName: string, thingsToBePopulated: string | string[], query: Record<string, any>): Promise<T[]>;
    aggregate(storeName: string, pipeline: any): Promise<any>;
    createIndex(storeName: string, column: string, order: string, options: any): Promise<void>;
    viewIndexes(storeName: string): Promise<mongoose.IndexDefinition[]>;
    dropIndex(storeName: string, indexName: string): Promise<void>;
    findAndPopulateByKey(fromstoreName: string, query: Record<string, any>, fromKey: string, findinstoreName: string, inKey: string): Promise<any[]>;
    startTransaction(): Promise<void>;
    commitTransaction(): Promise<void>;
    abortTransaction(): Promise<void>;
    getSession(): Promise<mongoose.ClientSession | null>;
    disconnect(): Promise<void>;
}
export default MongoDBConnector;
