import type { AggregateOptions, AggregationCursor, AnyBulkWriteOperation, BSONSerializeOptions, BulkWriteOptions, BulkWriteResult, ChangeStream, ChangeStreamDocument, ChangeStreamOptions, CollStats, CollStatsOptions, Collection, CommandOperationOptions, CountDocumentsOptions, CountOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, DistinctOptions, Document, DropCollectionOptions, EstimatedDocumentCountOptions, FindCursor, FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, Hint, IndexDescription, IndexInformationOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, ListIndexesCursor, ListIndexesOptions, ListSearchIndexesCursor, ModifyResult, OperationOptions, OptionalUnlessRequiredId, OrderedBulkOperation, ReadConcern, ReadPreference, RenameOptions, ReplaceOptions, SearchIndexDescription, UnorderedBulkOperation, UpdateFilter, UpdateOptions, UpdateResult, WithId, WithoutId, WriteConcern } from "mongodb"; import { MaybeStrictFilter } from "./events/collectionEvents.js"; export declare abstract class AbstractHookedCollection implements Collection { #private; constructor(collection: Collection); get bsonOptions(): BSONSerializeOptions; get collectionName(): string; get dbName(): string; get hint(): Hint | undefined; set hint(v: Hint | undefined); get namespace(): string; get readConcern(): ReadConcern | undefined; get readPreference(): ReadPreference | undefined; get writeConcern(): WriteConcern | undefined; _setCollection(collection: Collection): void; init(): void; bulkWrite(operations: AnyBulkWriteOperation[], options?: BulkWriteOptions | undefined): Promise; createIndex(indexSpec: IndexSpecification, options?: CreateIndexesOptions | undefined): Promise; createIndexes(indexSpecs: IndexDescription[], options?: CreateIndexesOptions | undefined): Promise; createSearchIndex(description: SearchIndexDescription): Promise; createSearchIndexes(descriptions: SearchIndexDescription[]): Promise; drop(options?: DropCollectionOptions | undefined): Promise; dropIndex(indexName: string, options?: CommandOperationOptions | undefined): Promise; dropIndexes(options?: CommandOperationOptions | undefined): Promise; dropSearchIndex(name: string): Promise; indexExists(indexes: string | string[], options?: IndexInformationOptions | undefined): Promise; indexInformation(options?: IndexInformationOptions | undefined): Promise; indexes(options?: IndexInformationOptions | undefined): Promise; initializeOrderedBulkOp(options?: BulkWriteOptions | undefined): OrderedBulkOperation; initializeUnorderedBulkOp(options?: BulkWriteOptions | undefined): UnorderedBulkOperation; listIndexes(options?: ListIndexesOptions | undefined): ListIndexesCursor; listSearchIndexes(options?: AggregateOptions | undefined): ListSearchIndexesCursor; listSearchIndexes(name: string, options?: AggregateOptions | undefined): ListSearchIndexesCursor; options(options?: OperationOptions | undefined): Promise; rename(newName: string, options?: RenameOptions | undefined): Promise>; isCapped(options?: OperationOptions | undefined): Promise; updateSearchIndex(name: string, definition: Document): Promise; watch>(pipeline?: Document[] | undefined, options?: ChangeStreamOptions | undefined): ChangeStream; stats(options?: CollStatsOptions | undefined): Promise; abstract aggregate(pipeline?: Document[] | undefined, options?: AggregateOptions | undefined): AggregationCursor; abstract count(filter?: MaybeStrictFilter | undefined, options?: CountOptions | undefined): Promise; abstract countDocuments(filter?: Document | undefined, options?: CountDocumentsOptions | undefined): Promise; abstract deleteMany(filter?: MaybeStrictFilter | undefined, options?: DeleteOptions | undefined): Promise; abstract deleteOne(filter?: MaybeStrictFilter | undefined, options?: DeleteOptions | undefined): Promise; abstract distinct(key: string): Promise; abstract distinct(key: string, filter: MaybeStrictFilter): Promise; abstract distinct(key: string, filter: MaybeStrictFilter, options: DistinctOptions): Promise; abstract distinct>(key: Key, filter: MaybeStrictFilter, options: DistinctOptions): Promise; abstract estimatedDocumentCount(options?: EstimatedDocumentCountOptions | undefined): Promise; abstract find(): FindCursor>; abstract find(filter: MaybeStrictFilter, options?: FindOptions | undefined): FindCursor>; abstract find(filter: MaybeStrictFilter, options?: FindOptions | undefined): FindCursor; abstract find(filter: MaybeStrictFilter, options: FindOptions): FindCursor>; abstract findOne(): Promise | null>; abstract findOne(filter: MaybeStrictFilter): Promise | null>; abstract findOne(filter: MaybeStrictFilter, options: FindOptions): Promise | null>; abstract findOne(): Promise; abstract findOne(filter: MaybeStrictFilter): Promise; abstract findOne(filter: MaybeStrictFilter, options?: FindOptions | undefined): Promise; abstract findOne(filter: MaybeStrictFilter, options: FindOptions): Promise | null>; abstract findOneAndDelete(filter: MaybeStrictFilter, options: FindOneAndDeleteOptions & { includeResultMetadata: true; }): Promise>; abstract findOneAndDelete(filter: MaybeStrictFilter, options: FindOneAndDeleteOptions & { includeResultMetadata: false; }): Promise | null>; abstract findOneAndDelete(filter: MaybeStrictFilter, options: FindOneAndDeleteOptions): Promise>; abstract findOneAndDelete(filter: MaybeStrictFilter): Promise>; abstract findOneAndDelete(filter: MaybeStrictFilter, options?: FindOneAndDeleteOptions): Promise | ModifyResult | null>; abstract findOneAndUpdate(filter: MaybeStrictFilter, update: UpdateFilter, options: FindOneAndUpdateOptions & { includeResultMetadata: true; }): Promise>; abstract findOneAndUpdate(filter: MaybeStrictFilter, update: UpdateFilter, options: FindOneAndUpdateOptions & { includeResultMetadata: false; }): Promise | null>; abstract findOneAndUpdate(filter: MaybeStrictFilter, update: UpdateFilter, options: FindOneAndUpdateOptions): Promise | null>; abstract findOneAndUpdate(filter: MaybeStrictFilter, update: UpdateFilter): Promise>; abstract findOneAndUpdate(filter: MaybeStrictFilter, update: UpdateFilter, options?: FindOneAndUpdateOptions): Promise | WithId | null>; abstract findOneAndReplace(filter: MaybeStrictFilter, replacement: WithoutId, options: FindOneAndReplaceOptions & { includeResultMetadata: true; }): Promise>; abstract findOneAndReplace(filter: MaybeStrictFilter, replacement: WithoutId, options: FindOneAndReplaceOptions & { includeResultMetadata: false; }): Promise | null>; abstract findOneAndReplace(filter: MaybeStrictFilter, replacement: WithoutId, options: FindOneAndReplaceOptions): Promise>; abstract findOneAndReplace(filter: MaybeStrictFilter, replacement: WithoutId): Promise>; abstract findOneAndReplace(filter: MaybeStrictFilter, replacement: WithoutId, options?: FindOneAndReplaceOptions): Promise | ModifyResult | null>; abstract insertMany(docs: OptionalUnlessRequiredId[], options?: BulkWriteOptions | undefined): Promise>; abstract insertOne(doc: OptionalUnlessRequiredId, options?: InsertOneOptions | undefined): Promise>; abstract replaceOne(filter: MaybeStrictFilter, replacement: WithoutId, options?: ReplaceOptions | undefined): Promise>; abstract updateMany(filter: MaybeStrictFilter, update: UpdateFilter, options?: UpdateOptions | undefined): Promise>; abstract updateOne(filter: MaybeStrictFilter, update: UpdateFilter | Partial, options?: UpdateOptions | undefined): Promise>; }