import { Ottoman } from '../../ottoman/ottoman';
import { Schema } from '../../schema';
import { Document } from '../document';
import { ModelMetadata } from '../interfaces/model-metadata.interface';
import { Model } from '../model';
import { PopulateFieldsType, PopulateOptionsType } from '../populate.types';
export declare const modelMetadataSymbol: unique symbol;
export declare const getModelMetadata: (modelConstructor: any) => ModelMetadata;
export declare const setModelMetadata: (modelConstructor: any, metadata: ModelMetadata) => ModelMetadata;
export type PopulateAuxOptionsType = {
    schema: Schema;
    fieldsName?: PopulateFieldsType;
    pojo: Record<string, unknown> | Document;
    ottoman: Ottoman;
    modelName: string;
} & Partial<PopulateOptionsType>;
export declare const getPopulated: (options: PopulateAuxOptionsType) => Promise<Model | Record<string, unknown>>;
