import { Codec } from "mongodb-stitch-core-sdk";
import { CoreRemoteMongoCollection, RemoteCountOptions, RemoteDeleteResult, RemoteFindOptions, RemoteInsertManyResult, RemoteInsertOneResult, RemoteUpdateOptions, RemoteUpdateResult } from "mongodb-stitch-core-services-mongodb-remote";
import RemoteMongoCollection from "../RemoteMongoCollection";
import RemoteMongoReadOperation from "../RemoteMongoReadOperation";
export default class RemoteMongoCollectionImpl<DocumentT> {
    private readonly proxy;
    readonly namespace: string;
    constructor(proxy: CoreRemoteMongoCollection<DocumentT>);
    withCollectionType<U>(codec: Codec<U>): RemoteMongoCollection<U>;
    count(query?: object, options?: RemoteCountOptions): Promise<number>;
    find(query?: object, options?: RemoteFindOptions): RemoteMongoReadOperation<DocumentT>;
    aggregate(pipeline: object[]): RemoteMongoReadOperation<DocumentT>;
    insertOne(doc: DocumentT): Promise<RemoteInsertOneResult>;
    insertMany(docs: DocumentT[]): Promise<RemoteInsertManyResult>;
    deleteOne(query: object): Promise<RemoteDeleteResult>;
    deleteMany(query: object): Promise<RemoteDeleteResult>;
    updateOne(query: object, update: object, updateOptions?: RemoteUpdateOptions): Promise<RemoteUpdateResult>;
    updateMany(query: object, update: object, updateOptions?: RemoteUpdateOptions): Promise<RemoteUpdateResult>;
}
