import { Entity, Model, Namespace, Schema, IEntityDatum } from '@alephdata/followthemoney';
export interface IEntityManagerProps {
    model?: Model;
    namespace?: Namespace;
    createEntity?: (entity: IEntityDatum) => Entity;
    updateEntity?: (entity: Entity) => void;
    deleteEntity?: (entityId: string) => void;
    expandEntity?: (entityId: string, properties?: Array<string>) => Promise<any>;
    getEntitySuggestions?: (queryText: string, schemata?: Array<Schema>) => Promise<Entity[]>;
    resolveEntityReference?: (entityId: string) => Entity | undefined;
}
export declare class EntityManager {
    readonly model: Model;
    readonly namespace?: Namespace;
    readonly hasExpand: boolean;
    private overload;
    constructor(props?: IEntityManagerProps);
    createEntity(entityData: any): Entity;
    updateEntity(entity: Entity): void;
    deleteEntity(entityId: string): void;
    expandEntity(entityId: string, properties?: Array<string>): Promise<any>;
    resolveEntityReference(entityId: string): any;
    getEntitySuggestions(queryText: string, schemata?: Array<Schema>): Promise<any>;
    applyEntityChanges(entityChanges: any, factor: number): void;
}
