UNPKG

mongoose

Version:
111 lines (78 loc) 3.91 kB
declare module 'mongoose' { import mongodb = require('mongodb'); import bson = require('bson'); class NativeBuffer extends Buffer {} namespace Types { class Array<T> extends global.Array<T> { /** Pops the array atomically at most one time per document `save()`. */ $pop(): T; /** Atomically shifts the array at most one time per document `save()`. */ $shift(): T; /** Adds values to the array if not already present. */ addToSet(...args: any[]): any[]; isMongooseArray: true; /** Pushes items to the array non-atomically. */ nonAtomicPush(...args: any[]): number; /** Wraps [`Array#push`](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/push) with proper change tracking. */ push(...args: any[]): number; /** * Pulls items from the array atomically. Equality is determined by casting * the provided value to an embedded document and comparing using * [the `Document.equals()` function.](./api/document.html#document_Document-equals) */ pull(...args: any[]): this; /** * Alias of [pull](#mongoosearray_MongooseArray-pull) */ remove(...args: any[]): this; /** Sets the casted `val` at index `i` and marks the array modified. */ set(index: number, val: T): this; /** Atomically shifts the array at most one time per document `save()`. */ shift(): T; /** Returns a native js Array. */ toObject(options?: ToObjectOptions): any; toObject<T>(options?: ToObjectOptions<T>): T; /** Wraps [`Array#unshift`](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/unshift) with proper change tracking. */ unshift(...args: any[]): number; } class Buffer extends NativeBuffer { /** Sets the subtype option and marks the buffer modified. */ subtype(subtype: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 128 | ToObjectOptions): void; /** Converts this buffer to its Binary type representation. */ toObject(subtype?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 128): mongodb.Binary; } class Decimal128 extends mongodb.Decimal128 { } class DocumentArray<T, THydratedDocumentType extends Types.Subdocument<any> = Types.Subdocument<InferId<T>, any, T> & T> extends Types.Array<THydratedDocumentType> { /** DocumentArray constructor */ constructor(values: AnyObject[]); isMongooseDocumentArray: true; /** Creates a subdocument casted to this schema. */ create(obj: any): THydratedDocumentType; /** Searches array items for the first document with a matching _id. */ id(id: any): THydratedDocumentType | null; push(...args: (AnyKeys<T> & AnyObject)[]): number; splice(start: number, deleteCount?: number, ...args: (AnyKeys<T> & AnyObject)[]): THydratedDocumentType[]; } class Map<V> extends global.Map<string, V> { /** Converts a Mongoose map into a vanilla JavaScript map. */ toObject(options?: ToObjectOptions & { flattenMaps?: boolean }): any; } class ObjectId extends mongodb.ObjectId { } class Subdocument<IdType = unknown, TQueryHelpers = any, DocType = any> extends Document<IdType, TQueryHelpers, DocType> { $isSingleNested: true; /** Returns the top level document of this sub-document. */ ownerDocument(): Document; /** Returns this sub-documents parent document. */ parent(): Document; /** Returns this sub-documents parent document. */ $parent(): Document; } class ArraySubdocument<IdType = any, TQueryHelpers = unknown, DocType = unknown> extends Subdocument<IdType, TQueryHelpers, DocType> { /** Returns this sub-documents parent array. */ parentArray(): Types.DocumentArray<unknown>; } class UUID extends bson.UUID {} class Double extends bson.Double {} } }