import { Edge, Node } from 'react-flow-renderer'; export interface TypeSuggestItem { /** the title of the attribute type (used for display) */ title: string; /** * based on the selected type, the kind can be * - related entity * - related entities * - alias * - storage */ kind: catalog.AttributeKind; /** * the calculated kind holds the final value of the attribute kind property. * it is resolved based on the selected type. */ calculatedKind: catalog.AttributeKind; /** the actual value of the type. * - can be a primitive type (date, number, bool, ...etc) * - can be a dataclass name or a collection name ( related attribute ) * - can be a full path to an existing attribute. (alias) */ value: string; /** * it holds to final value for the attributes type property. it is resolved based on the selected type. */ calculatedType: string; /** * optional property defining the attribute behavior */ behavior?: string; } export type TypeSuggestItems = TypeSuggestItem[]; export type ModelNode = Omit & { data: catalog.IDataClass; type: 'table'; virtual?: boolean; }; export type ModelEdge = Omit & { data: { sourceDataclass: string; sourceAttribute?: string; targetDataclass: string; targetAttribute?: string; }; }; export interface ServerModel { toJSON: boolean; extraProperties?: catalog.IModelProperties; dataClasses: catalog.IDataClass[]; } export type DataclassScope = 'public' | 'publicOnServer'; export type AttributeScope = 'public' | 'publicOnServer' | 'protected' | 'private'; export type TIndexType = 'btree' | 'cluster' | 'auto' | undefined; export declare enum EAttributeTypes { UUID = "uuid", STRING = "string", TEXT = "text", DATE = "date", TIME = "duration", BOOLEAN = "bool", BYTE = "byte", INTEGER = "word", LONG = "long", LONG64 = "long64", FLOAT = "number", BLOB = "blob", IMAGE = "image", OBJECT = "object" } export declare enum EAttributeKind { STORAGE = "storage", RELATEDENTITY = "relatedEntity", RELATEDENTITIES = "relatedEntities", CALCULATED = "calculated", COMPOSITION = "composition", ALIAS = "alias" } export declare const isValidPrimaryKey: (attribute: catalog.IAttribute) => boolean; export declare const attributeKinds: { label: string; value: string; }[]; export declare const primaryKeyAttributes: TypeSuggestItems; export declare const attributeTypes: TypeSuggestItems; export declare const dataclassScopes: { label: string; value: string; }[]; export declare const attributeScopes: { label: string; value: string; }[]; export declare const indexTypes: { label: string; value: string; }[];