import { AID, AttributeDescription, DID, DimensionDescription, TensorDescription } from '../attributes'; import { TID } from '../catalog'; import { DimensionSpec, TensorSpec } from './types'; export interface HasName { name: string; } export interface IIndex { get(name: string): S | undefined; getById(id: ID): S; values(): IterableIterator; } export declare class Index implements IIndex { private readonly collection; private readonly nameToEntry; private readonly idToEntry; constructor(collection: string, entries: T[], factory: (entry: T) => S, id: (entry: S) => ID); get(name: string): S | undefined; getById(id: ID): S; values(): IterableIterator; } export interface IndexedDimension { dimension: DimensionDescription; index: IIndex; } export declare function processDimensions(ds: DimensionSpec[]): IIndex; export declare function processTensors(dimensions: IIndex, ts: TensorSpec[]): IIndex;