import * as React from 'react';
import { Entity, Property } 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: Property[];
    currEditing: Property | null;
}
export declare class EntityViewer extends React.PureComponent<IEntityViewerProps, IEntityViewerState> {
    private schemaProperties;
    constructor(props: IEntityViewerProps);
    getVisibleProperties(props?: Readonly<IEntityViewerProps> & Readonly<{
        children?: React.ReactNode;
    }>): Property[];
    componentWillReceiveProps(nextProps: Readonly<IEntityViewerProps>): void;
    onNewPropertySelected(p: Property): void;
    onEditPropertyClick(e: React.MouseEvent, property: Property): void;
    onSubmit(entity: Entity): void;
    renderProperty(property: Property): JSX.Element;
    render(): JSX.Element;
}
export {};
