import { RelationKey, Type } from '../interfaces'; export declare type Schema = { [t in Type]: EntitySchema; }; export declare type EntitySchema = { [k in RelationKey]: RelationSchema; }; export declare type RelationSchema = { has: 'many' | 'one'; type: Type; reciprocalKey?: RelationKey; alias?: string; }; export declare class InvalidSchema extends Error { } export declare const validateSchema: (schema: Schema) => void; export declare class ReciprocalKeyValidator { type: Type; lookup: { [relatedType in Type]: { [fk in RelationKey]: RelationKey | undefined; }; }; constructor(type: Type); addRelationKey(relatedType: Type, fk: RelationKey, reciprocalKey?: RelationKey): void; validate(modelSchema: Schema): void; }