/// export interface ObjectId { id: Buffer; toString(): string; } export declare type ObjectID = ObjectId; export declare type Query = { [P in keyof T]?: any; }; export declare type Fields = keyof T; export declare type Nullable = T | null; export interface IOrderInfo { field: string; desc: boolean; } export interface IPageInfo { pageId?: number; pageSize?: number; dataCount?: number; cursor?: string | number; } export interface IPagingData { pageInfo: IPageInfo; data: Array; } export declare enum ModelType { Mongoose = 1 } export interface IModelSchema { type: ModelType; schema: any; } export default class Model { static readonly schemas: Map; static readonly Types: { pagingData: (m: any) => string; array: (m: any) => string; schema: (m: any) => any; }; static fields(field: Fields | Fields[]): keyof T | (keyof T)[]; static getSchema(name: string): IModelSchema | undefined; static declare(name: string, type: ModelType, schema: T): T; } export declare class OrderInfo { static create(fields: Fields | Fields[], desc?: boolean): IOrderInfo | IOrderInfo[]; } export declare class PageInfo { static FIRST_PAGE_ID: number; static MAX_PAGE_SIZE: number; static DEFAULT_PAGE_SIZE: number; static create(pageSize?: number): IPageInfo; } export declare class PagingData { static create(paging: IPageInfo, data: TData[]): IPagingData; }