///
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;
}