/// <reference types="node" /> /// <reference types="mongoose/types/aggregate" /> /// <reference types="mongoose/types/callback" /> /// <reference types="mongoose/types/collection" /> /// <reference types="mongoose/types/connection" /> /// <reference types="mongoose/types/cursor" /> /// <reference types="mongoose/types/document" /> /// <reference types="mongoose/types/error" /> /// <reference types="mongoose/types/expressions" /> /// <reference types="mongoose/types/helpers" /> /// <reference types="mongoose/types/middlewares" /> /// <reference types="mongoose/types/indexes" /> /// <reference types="mongoose/types/models" /> /// <reference types="mongoose/types/mongooseoptions" /> /// <reference types="mongoose/types/pipelinestage" /> /// <reference types="mongoose/types/populate" /> /// <reference types="mongoose/types/query" /> /// <reference types="mongoose/types/schemaoptions" /> /// <reference types="mongoose/types/schematypes" /> /// <reference types="mongoose/types/session" /> /// <reference types="mongoose/types/types" /> /// <reference types="mongoose/types/utility" /> /// <reference types="mongoose/types/validation" /> /// <reference types="mongoose/types/virtuals" /> /// <reference types="mongoose/types/inferschematype" /> /// <reference types="mongoose/types/inferrawdoctype" /> import mongoose from 'mongoose'; import type { DocumentType, Ref, RefType } from './types'; /** * Check if the given document is populated * @param doc The Ref with uncertain type */ export declare function isDocument<T, S extends RefType>(doc: Ref<T, S> | null | undefined): doc is DocumentType<T>; /** * Check if the given array is fully populated * Only returns "true" if all members in the array are populated * @param docs The Array of Refs with uncertain type */ export declare function isDocumentArray<T, S extends RefType>(docs: mongoose.Types.Array<Ref<T, S>> | null | undefined): docs is mongoose.Types.Array<DocumentType<NonNullable<T>>>; /** * Check if the given array is fully populated * Only returns "true" if all members in the array are populated * @param docs The Array of Refs with uncertain type */ export declare function isDocumentArray<T, S extends RefType>(docs: Ref<T, S>[] | null | undefined): docs is DocumentType<NonNullable<T>>[]; type AllowedRefTypes = typeof String | typeof Number | typeof Buffer | typeof mongoose.Types.ObjectId | typeof mongoose.Types.Buffer; /** * Check if the document is of type "refType" * @param doc The Ref with uncretain type * @param refType The Expected Reference Type (this is required because this type is only known at compile time, not at runtime) */ export declare function isRefType<T, S extends RefType>(doc: Ref<T, S> | null | undefined, refType: AllowedRefTypes): doc is NonNullable<S>; /** * Check if the array is fully of type "refType" * Only returns "true" if all members in the array are of type "refType" * @param docs The Ref with uncretain type * @param refType The Expected Reference Type (this is required because this type is only known at compile time, not at runtime) */ export declare function isRefTypeArray<T, S extends RefType>(docs: mongoose.Types.Array<Ref<T, S>> | null | undefined, refType: AllowedRefTypes): docs is mongoose.Types.Array<NonNullable<S>>; /** * Check if the array is fully of type "refType" * Only returns "true" if all members in the array are of type "refType" * @param docs The Ref with uncretain type * @param refType The Expected Reference Type (this is required because this type is only known at compile time, not at runtime) */ export declare function isRefTypeArray<T, S extends RefType>(docs: Ref<T, S>[] | null | undefined, refType: AllowedRefTypes): docs is NonNullable<S>[]; /** * Check if the input is a mongoose.Model * @param model The Value to check */ export declare function isModel(model: any): model is mongoose.Model<any>; export {};