import { Filter } from 'mongodb'; import { Connection, PipelineStage, Types } from 'mongoose'; import { BaseOutputModel, EventInputModel } from '../models'; import { QueryOptions } from '../types'; export declare abstract class EventRepository { readonly connection: Connection; readonly collection: string; readonly view: string; protected constructor(connection: Connection, collection: string, view: string); aggregate(pipeline?: PipelineStage[], asCursor?: boolean): Promise; count(filter?: Filter): Promise; create(eventInputModel: EventInputModel): Promise; distinct(field: string, filter?: Filter): Promise; find(filter?: Filter, { page, projection, size, sort }?: QueryOptions): Promise; findById(id: Types.ObjectId, filter?: Filter, { projection }?: QueryOptions): Promise; findByIdAndDelete(id: Types.ObjectId, filter?: Filter): Promise; findByIdOn(id: Types.ObjectId, timestamp: Date, filter?: Filter): Promise; findOne(filter: Filter, { projection }?: QueryOptions): Promise; private mapSortToObject; }