import 'reflect-metadata'; import { CandidateKeys } from '../core/domain'; export interface EntityMeta { keyspace: string; table: string; partitionKeys: string[]; clusteringKeys?: string[]; materializedViews?: MaterializedViewConfig[]; } export interface TypedEntityMeta extends EntityMeta { partitionKeys: CandidateKeys[]; clusteringKeys?: CandidateKeys[]; materializedViews?: TypedMaterializedViewConfig[]; } export interface MaterializedViewConfig { name: string; partitionKeys: string[]; clusteringKeys?: string[]; columns?: string[]; } export interface TypedMaterializedViewConfig extends MaterializedViewConfig { partitionKeys: CandidateKeys[]; clusteringKeys?: CandidateKeys[]; columns?: (keyof T)[]; } export declare function getDiscoveredEntities(): Function[]; export declare function getEntityMetaForType(source: Function): TypedEntityMeta | undefined; export declare function Entity(meta: TypedEntityMeta): ClassDecorator;