import { InternalMetaStore } from './lair'; import { LairRecord } from './record'; export interface RecordRelationShips { [attrName: string]: string | string[] | null; } export declare class Relationships { private relationships; private meta; updateMeta(newMeta: InternalMetaStore): void; addFactory(factoryName: string): void; addRecord(factoryName: string, id: string): void; recalculateRelationshipsForRecord(factoryName: string, record: LairRecord): void; recalculateRelationshipForAttr(factoryName: string, record: LairRecord, attrName: string): void; deleteRelationshipsForRecord(factoryName: string, id: string): void; deleteRelationshipForAttr(factoryName: string, id: string, attrName: string): void; getOne(factoryName: string, id: string, attrName: string): string; getMany(factoryName: string, id: string, attrName: string): string[]; removeFromMany(factoryName: string, id: string, attrName: string, valueToRemove: string): void; addToMany(factoryName: string, id: string, attrName: string, valueToAdd: string): void; setOne(factoryName: string, id: string, attrName: string, valueToSet: string): void; setMany(factoryName: string, id: string, attrName: string, valueToSet: string[]): void; getRelationshipsForRecord(factoryName: string, id: string): RecordRelationShips; createOneToOne(factoryName: string, id: string, attrName: string, newDistId: string, distFactoryName: string, distAttrName: string): void; createManyToOne(factoryName: string, id: string, attrName: string, newDistIds: string[], distFactoryName: string, distAttrName: string): void; createOneToMany(factoryName: string, id: string, attrName: string, newDistId: string, distFactoryName: string, distAttrName: string): void; createManyToMany(factoryName: string, id: string, attrName: string, newDistIds: string[], distFactoryName: string, distAttrName: string): void; protected recordRelationshipsExist(factoryName: string, id: string): boolean; protected updateOneToOne(sourceFactoryName: string, sourceRecordId: string, sourceAttrName: string, distFactoryName: string, distRecordId: string, distAttrName: string): void; protected updateManyToOne(sourceFactoryName: string, sourceRecordId: string, sourceAttrName: string, distFactoryName: string, distRecordIds: string[], distAttrName: string): void; protected updateOneToMany(sourceFactoryName: string, sourceRecordId: string, sourceAttrName: string, distFactoryName: string, distRecordId: string, distAttrName: string): void; protected updateManyToMany(sourceFactoryName: string, sourceRecordId: string, sourceAttrName: string, distFactoryName: string, distRecordIds: string[], distAttrName: string): void; protected dropRelationship(distFactoryName: string, distAttrName: string, sourceRecordId: string): void; }