/// <reference types="node" />
import mongoose from "mongoose";
import { MongooseModel } from "./types";
export declare const getSubdocName: (path: string, modelName?: string) => string;
export declare const isMapType: (val: any) => boolean;
export declare const convertBaseTypeToTs: ({ key, val, isDocument, noMongoose, datesAsStrings }: {
    key: string;
    val: any;
    isDocument: boolean;
    noMongoose: boolean;
    datesAsStrings: boolean;
}) => string | undefined;
export declare const getShouldLeanIncludeVirtuals: (schema: any) => boolean;
export declare const BASE_TYPES: Set<string | ObjectConstructor | DateConstructor | NumberConstructor | StringConstructor | BooleanConstructor | {
    new (str: string, encoding?: string | undefined): Buffer;
    new (size: number): Buffer;
    new (array: Uint8Array): Buffer;
    new (arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer;
    new (array: any[]): Buffer;
    new (buffer: Buffer): Buffer;
    prototype: Buffer;
    from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number | undefined, length?: number | undefined): Buffer;
    from(data: any[]): Buffer;
    from(data: Uint8Array): Buffer;
    from(obj: {
        valueOf(): string | object;
    } | {
        [Symbol.toPrimitive](hint: "string"): string;
    }, byteOffset?: number | undefined, length?: number | undefined): Buffer;
    from(str: string, encoding?: string | undefined): Buffer;
    of(...items: number[]): Buffer;
    isBuffer(obj: any): obj is Buffer;
    isEncoding(encoding: string): boolean | undefined;
    byteLength(string: string | ArrayBuffer | SharedArrayBuffer | NodeJS.TypedArray | DataView, encoding?: string | undefined): number;
    concat(list: Uint8Array[], totalLength?: number | undefined): Buffer;
    compare(buf1: Uint8Array, buf2: Uint8Array): number;
    alloc(size: number, fill?: string | number | Buffer | undefined, encoding?: string | undefined): Buffer;
    allocUnsafe(size: number): Buffer;
    allocUnsafeSlow(size: number): Buffer;
    poolSize: number;
} | MapConstructor | typeof mongoose.Schema.Types.Map | typeof mongoose.Types.ObjectId | typeof mongoose.Types.Decimal128>;
export declare const loadModels: (modelsPaths: string[]) => MongooseModel[];
export declare const getTypeFromKeyValue: ({ key, val: valOriginal, isDocument, shouldLeanIncludeVirtuals, noMongoose, datesAsStrings }: {
    key: string;
    val: any;
    isDocument: boolean;
    shouldLeanIncludeVirtuals: boolean;
    noMongoose: boolean;
    datesAsStrings: boolean;
}) => string;
