import { Node } from 'TypeScript'; import BaseAstParser from './base'; export interface IModelSchema { name: string; schema: any; } export declare enum PropertyType { String = 1, Number = 2, Boolean = 3, Date = 4, Any = 5, Json = 6, ObjectId = 7, Schema = 8, Buffer = 9 } export interface IProperty { type: PropertyType | PropertyType[]; name?: string; value: string | Object; memo: string; required?: boolean; $type?: string; $min?: Number; $max?: Number; $message?: string; $keys?: string; $value?: string; $enums?: string; } export default class ModelAstParser extends BaseAstParser { private _schemas; private name; readonly schemas: IModelSchema[]; parse(): IModelSchema | undefined; protected getSchema(name: string): IModelSchema | undefined; protected addSchema(obj: IModelSchema): IModelSchema; protected getModelNode(name: string): Node; protected getModelSchema(nodeName: string, modelName: string): IModelSchema | undefined; protected getInterfaceName(name: string): string; protected getPropertyType(node: any): { type: PropertyType | Array; text: string; name?: string; }; protected getProperty(node: any): IProperty; protected visit(parent: any, pName: string): any; protected getReturnValue(): { name: any; id: any; }; protected getIdentifierNode(node: Node, id: string): Node[]; protected getIdentifierText(node: Node, id: string): string | undefined; protected getTextValue(node: any, id: string): string | undefined; protected getBooleanValue(node: any, id: string): boolean; protected getNumberValue(node: any, id: string): number | undefined; }