import { ConnectionPoolAdapter } from './base/connectionPool';
import { ConnectionAdapter } from './base/connection';
import { Query } from '../../../query/domain';
import { ConnectionConfig, Connection } from '../../domain';
import { Data, MappingConfigService } from 'lambdaorm-base';
import { DialectService } from '../../../language/domain';
import { OrmH3lp } from '../../../shared/infrastructure';
export declare class MongoDBConnectionPoolAdapter extends ConnectionPoolAdapter {
    private static lib;
    constructor(config: ConnectionConfig, helper: OrmH3lp);
    init(): Promise<void>;
    create(id: string): Promise<Connection>;
}
export declare class MongodbConnectionAdapter extends ConnectionAdapter {
    end(): Promise<void>;
    insertConditional(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    upsert(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    merge(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    bulkMerge(mapping: MappingConfigService, dialect: DialectService, query: Query, array: any[]): Promise<any[]>;
    private session?;
    select(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    insert(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    bulkInsert(mapping: MappingConfigService, dialect: DialectService, query: Query, array: any[]): Promise<any[]>;
    private getInsertList;
    private getInsertListIncludes;
    private getInsertListInclude;
    update(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<number>;
    bulkUpdate(_mapping: MappingConfigService, _dialect: DialectService, _query: Query, _array: any[]): Promise<number>;
    private getObject;
    delete(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<number>;
    execute(_query: Query): Promise<any>;
    executeSentence(_sentence: any): Promise<any>;
    executeDDL(_query: Query): Promise<any>;
    beginTransaction(): Promise<void>;
    commit(): Promise<void>;
    rollback(): Promise<void>;
    private arrayToList;
    private parseTemplate;
    private getValue;
    private getAnyValue;
    private getNextSequenceValue;
    truncateEntity(mapping: MappingConfigService, query: Query): Promise<any>;
    createEntity(mapping: MappingConfigService, query: Query): Promise<any>;
    createSequence(_mapping: MappingConfigService, query: Query): Promise<any>;
    createIndex(mapping: MappingConfigService, query: Query): Promise<any>;
    addPk(mapping: MappingConfigService, query: Query): Promise<any>;
    addUk(mapping: MappingConfigService, query: Query): Promise<any>;
    dropSequence(_mapping: MappingConfigService, query: Query): Promise<any>;
    dropEntity(mapping: MappingConfigService, query: Query): Promise<any>;
    dropPk(mapping: MappingConfigService, query: Query): Promise<any>;
    dropUk(mapping: MappingConfigService, query: Query): Promise<any>;
    dropIndex(mapping: MappingConfigService, query: Query): Promise<any>;
    objects(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    tables(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    views(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    partitions(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    sequences(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    foreignKeys(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    primaryKeys(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    uniqueKeys(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    indexes(mapping: MappingConfigService, dialect: DialectService, query: Query, data: Data): Promise<any>;
    private collectionNames;
    private getEntities;
}
