import { DataSource, ListFindQuery, Mutation, PaginatedResponse, Where } from '@scalars/grapi';
import { Db } from 'mongodb';
import { MongodbData } from './mongodbData';
export declare class MongodbDataSource extends MongodbData implements DataSource {
    constructor(db: Db, collectionName: string);
    find(args?: ListFindQuery): Promise<PaginatedResponse>;
    findOne({ where }: {
        where: Where;
    }): Promise<any>;
    findOneById(id: string): Promise<any>;
    create(mutation: Mutation): Promise<any>;
    update(where: Where, mutation: Mutation): Promise<any>;
    delete(where: Where): Promise<any>;
    findOneByRelation(foreignKey: string, foreignId: string): Promise<any>;
    updateOneRelation(id: string, foreignKey: string, foreignId: string): Promise<any>;
    findManyFromOneRelation({ where, orderBy }: ListFindQuery): Promise<any[]>;
    findManyFromManyRelation(sourceSideName: string, targetSideName: string, sourceSideId: string, { where, orderBy }: ListFindQuery): Promise<any[]>;
    addIdToManyRelation(sourceSideName: string, targetSideName: string, sourceSideId: string, targetSideId: string): Promise<void>;
    removeIdFromManyRelation(sourceSideName: string, targetSideName: string, sourceSideId: string, targetSideId: string): Promise<void>;
}
