import { MongoMemoryServer } from 'mongodb-memory-server';
import mongoose from 'mongoose';
import DealState from './model/DealState';
import DealTrackingState from './model/DealTrackingState';
import GenerationRequest from './model/GenerationRequest';
import HealthCheck from './model/HealthCheck';
import ProviderMetric from './model/ProviderMetric';
import ReplicationRequest from './model/ReplicationRequest';
import ScanningRequest from './model/ScanningRequest';
export default class Datastore {
    private static logger;
    protected static mongoMemoryServer: MongoMemoryServer;
    static HealthCheckModel: mongoose.Model<HealthCheck, {}, {}, {}>;
    static ScanningRequestModel: mongoose.Model<ScanningRequest, {}, {}, {}>;
    static GenerationRequestModel: mongoose.Model<GenerationRequest, {}, {}, {}>;
    static DealStateModel: mongoose.Model<DealState, {}, {}, {}>;
    static ReplicationRequestModel: mongoose.Model<ReplicationRequest, {}, {}, {}>;
    static ProviderMetricModel: mongoose.Model<ProviderMetric, {}, {}, {}>;
    static DealTrackingStateModel: mongoose.Model<DealTrackingState, {}, {}, {}>;
    private static DB_NAME;
    private static setupLocalMongoDb;
    private static connectMongoDb;
    private static setupDataModels;
    private static setupDealTrackingState;
    private static setupProviderMetricSchema;
    private static setupReplicationRequestSchema;
    private static setupDealStateSchema;
    private static setupGenerationRequestSchema;
    private static setupScanningRequestSchema;
    private static setupHealthCheckSchema;
    static init(inMemory: boolean): Promise<void>;
    static connect(): Promise<void>;
}
