import { AbstractClientService, Clazz } from '@joktec/core';
import { Connection as Mongoose } from 'mongoose';
import { MongoSchema } from './models';
import { MongoClient, MongoClientSession, MongoModelRegistry, MongoSessionOptions, MongoType } from './mongo.client';
import { MongoConfig } from './mongo.config';
export declare class MongoService extends AbstractClientService<MongoConfig, Mongoose> implements MongoClient {
    private modelRegistry;
    constructor(modelRegistry: MongoModelRegistry);
    protected init(config: MongoConfig): Promise<Mongoose>;
    private buildUri;
    start(client: Mongoose, conId?: string): Promise<void>;
    getVersion(conId?: string): Promise<string>;
    registerModel(schemaClass: typeof MongoSchema, conId?: string): Promise<void>;
    stop(client: Mongoose, conId?: string): Promise<void>;
    isConnected(conId?: string): boolean;
    startTransaction(options?: MongoSessionOptions, conId?: string): Promise<MongoClientSession>;
    getModel<T extends MongoSchema>(schemaClass: Clazz): MongoType<T>;
}
//# sourceMappingURL=mongo.service.d.ts.map