import { Document, FilterQuery, Model, } from 'mongoose'; import { ParseQueryFunction, } from './IApiQuery'; import { IApiTimestamp, } from './IApiTimestampModel'; export interface IApiModel { timestamps: IApiTimestamp; mark: { deleted: boolean; }; } export type ApiDocument = Document & IApiModel; export interface ApiModel extends Model { parseQuery: ParseQueryFunction; statistics: (query: FilterQuery) => Promise<{[ key: string ]: K[]}>; }