import { ViewEntity } from '..';
import { Entity } from '../engine/entity/Entity';
interface Data {
    [key: string]: unknown;
}
export interface RegistryEntityAttribute {
    fieldName: string;
    fieldNameI18n: string;
    fieldNameI18nJson: string;
}
export interface RegistryEntityAttributes {
    [key: string]: RegistryEntityAttribute;
}
export interface RegistryEntity {
    entity: Entity | ViewEntity;
    typeName: string;
    typeNamePlural: string;
    typeNamePascalCase: string;
    typeNamePluralPascalCase: string;
    attributes: RegistryEntityAttributes;
    dataShaper: (data: Data) => Data;
    dataSetShaper: (set: Data[]) => Data[];
    reverseDataShaper: (data: Data) => Data;
}
export interface Registry {
    [key: string]: RegistryEntity;
}
export declare const registry: Registry;
export declare const registerEntity: ({ entity, typeName, typeNamePlural, typeNamePascalCase, typeNamePluralPascalCase, attributes, dataShaper, dataSetShaper, reverseDataShaper, }: RegistryEntity) => void;
export declare const getRegisteredEntity: (entityName: string) => RegistryEntity;
export declare const getRegisteredEntityAttribute: (entityName: string, attributeName: string) => RegistryEntityAttribute;
export {};
