import * as React from 'react';
import { Entity, Property as FTMProperty, Schema as FTMSchema } from '@alephdata/followthemoney';
import { GraphLayout, Vertex } from '../layout';
import './EntityViewer.scss';
interface IEntityViewerProps {
    entity: Entity;
    vertexRef?: Vertex;
    onEntityChanged: (entity: Entity) => void;
    onVertexColorSelected: (vertex: Vertex, color: string) => void;
    onVertexRadiusSelected: (vertex: Vertex, radius: number) => void;
    writeable: boolean;
    layout: GraphLayout;
}
interface IEntityViewerState {
    visibleProps: FTMProperty[];
    currEditing: FTMProperty | null;
}
export declare class EntityViewer extends React.PureComponent<IEntityViewerProps, IEntityViewerState> {
    private schemaProperties;
    constructor(props: IEntityViewerProps);
    getVisibleProperties(props?: Readonly<IEntityViewerProps> & Readonly<{
        children?: React.ReactNode;
    }>): FTMProperty[];
    componentWillReceiveProps(nextProps: Readonly<IEntityViewerProps>): void;
    fetchEntitySuggestions(query: string, schemata?: Array<FTMSchema>): Promise<Entity[]>;
    resolveEntityReference(entityId: string): Entity | undefined;
    onNewPropertySelected(p: FTMProperty): void;
    onEditPropertyClick(e: React.MouseEvent, property: FTMProperty): void;
    onSubmit(entity: Entity): void;
    renderProperty(property: FTMProperty): JSX.Element;
    render(): JSX.Element;
}
export {};
