import { Collection } from '../data-access/collection.class'; export declare type Scope = 'public' | 'publicOnServer'; export declare type StorageAttributeKind = 'storage'; export declare type AliasAttributeKind = 'alias'; export declare type CalculatedAttributeKind = 'calculated'; export declare type RelatedEntityAttributeKind = 'relatedEntity'; export declare type RelatedEntitiesAttributeKind = 'relatedEntities'; export declare type AttributeKind = StorageAttributeKind | AliasAttributeKind | RelatedEntityAttributeKind | RelatedEntitiesAttributeKind | CalculatedAttributeKind; export declare type AttributeType = 'object' | 'time' | 'bool' | 'blob' | 'byte' | 'date' | 'duration' | 'image' | 'long' | 'long64' | 'number' | 'string' | 'uuid' | 'word'; export declare type DataStoreMethodApplyTo = 'catalogMethod'; export declare type DataClassMethodApplyTo = 'entityCollection' | 'dataClass' | 'entity'; export declare type MethodApplyTo = DataStoreMethodApplyTo | DataClassMethodApplyTo; export declare type MethodFrom = 'remoteServer'; export interface IGenericAttribute { name: string; type: string; kind: AttributeKind; scope: Scope; fieldPos?: number; } export interface ICollectionCache { [pageNb: number]: Collection; } export interface IStorageAttribute extends IGenericAttribute { type: AttributeType; kind: StorageAttributeKind; indexed: boolean; minLength?: number; maxLength?: number; autoComplete?: boolean; identifying?: boolean; multiLine?: boolean; readOnly?: boolean; path?: string; } export interface IAliasAttribute extends IGenericAttribute { type: AttributeType; kind: AliasAttributeKind; readOnly?: boolean; path?: string; } export interface ICalculatedAttribute extends IGenericAttribute { type: AttributeType; kind: CalculatedAttributeKind; readOnly?: boolean; } export interface IRelatedEntityAttribute extends IGenericAttribute { kind: RelatedEntityAttributeKind; foreignKey: string; inverseName: string; path: string; } export interface IRelatedEntitiesAttribute extends IGenericAttribute { kind: RelatedEntitiesAttributeKind; inverseName: string; reversePath: boolean; path: string; } export declare type DataClassAttribute = IStorageAttribute | IAliasAttribute | ICalculatedAttribute | IRelatedEntityAttribute | IRelatedEntitiesAttribute; export interface IDataClassKey { name: string; } export interface IDataClassMethod { name: string; applyTo: T; scope: Scope; from: MethodFrom; allowedOnHTTPGET: boolean; } export interface IDataClass { name: string; className: string; collectionName: string; tableNumber?: number; scope: Scope; dataURI: string; attributes: DataClassAttribute[]; key: IDataClassKey[]; methods: IDataClassMethod[]; } export interface ICatalog { __UNIQID: string; dataClasses: IDataClass[]; methods: IDataClassMethod; } export interface IOperationResult { ok: boolean; } export interface IEntity { __KEY?: string; __TIMESTAMP?: Date; __STAMP?: number; __CLASSNAME?: string; __COLLECTION?: string; __INDEX?: number; } export interface ILockResult { result: boolean; __STATUS: { success: boolean; wasNotLocked?: boolean; }; } export interface ICollection { __COUNT: number; __DATACLASS: string; __FIRST: number; __GlobalStamp: number; __SENT: string; __entityModel: string; __ENTITIES: T[]; __ENTITYSET: string; __queryPlan?: any; __queryPath?: any; } //# sourceMappingURL=catalog.interfaces.d.ts.map