export interface IEnumField { key: string; value: number | string; desc: string; } export interface IEnumSchema { obj?: any; name: string; desc: string; fields: IEnumField[]; } export default class Enum { static registry: Map; private static _registry; static declare(value: IEnumSchema): IEnumSchema; static getSchema(obj: any): IEnumSchema | undefined; static getSchemaByName(name: string): IEnumSchema | undefined; static getDescription(obj: any, value: string | number): string | undefined; static getName(obj: any): string; static explain(obj: any): string; static getKeys(obj: any): string[]; static getValues(obj: any): (string | number)[]; static getFields(obj: any): IEnumField[]; static isKey(key: any): boolean; }