import { FindSubQueryStatic } from './externals/express-cassandra.interface'; export interface EntityOptions { table_name?: string; key?: Array>; materialized_views?: { [index: string]: MaterializeViewStatic; }; clustering_order?: { [index: string]: 'desc' | 'asc'; }; options?: EntityExtraOptions; indexes?: Array | string[]; custom_indexes?: Partial[]; methods?: { [index: string]: Function; }; es_index_mapping?: { discover?: string; properties?: EsIndexPropertiesOptionsStatic; }; graph_mapping?: Partial>; [index: string]: any; } export declare type ClusterOrder = { [P in keyof T]?: 'desc' | 'asc'; }; export interface MaterializeViewStatic { select?: Array; key: Array>; clustering_order?: ClusterOrder; filter?: FilterOptions; } export interface EntityExtraOptions { timestamps?: { createdAt?: string; updatedAt?: string; }; versions?: { key: string; }; } declare type FilterOptions = Partial<{ [P in keyof T]: FindSubQueryStatic; }>; interface CustomIndexOptions { on: string; using: any; options: any; } declare type EsIndexPropertiesOptionsStatic = { [P in keyof T]?: { type?: string; index?: string; }; }; interface GraphMappingOptionsStatic { relations: { follow?: 'MULTI' | 'SIMPLE' | 'MANY2ONE' | 'ONE2MANY' | 'ONE2ONE'; mother?: 'MULTI' | 'SIMPLE' | 'MANY2ONE' | 'ONE2MANY' | 'ONE2ONE'; }; properties: { [index: string]: { type?: JanusGraphDataTypes; cardinality?: 'SINGLE' | 'LIST' | 'SET'; }; }; indexes: { [index: string]: { type?: 'Composite' | 'Mixed' | 'VertexCentric'; keys?: Array; label?: 'follow'; direction?: 'BOTH' | 'IN' | 'OUT'; order?: 'incr' | 'decr'; unique?: boolean; }; }; } declare type JanusGraphDataTypes = 'Integer' | 'String' | 'Character' | 'Boolean' | 'Byte' | 'Short' | 'Long' | 'Float' | 'Double' | 'Date' | 'Geoshape' | 'UUID'; export {};