import React from 'react';
import { GraphLayout } from '../layout';
import { GraphUpdateHandler } from '../GraphContext';
import { Entity, IEntityDatum, Schema, Property as FTMProperty } from "@alephdata/followthemoney";
import { SortType } from './SortType';
interface ITableViewPanelProps {
    layout: GraphLayout;
    schema: Schema;
    updateLayout: GraphUpdateHandler;
    writeable: boolean;
    toggleTableView: () => void;
    fitToSelection: () => void;
}
interface ITableViewPanelState {
    sort: SortType | null;
}
export declare class TableViewPanel extends React.Component<ITableViewPanelProps, ITableViewPanelState> {
    private localEntityManager;
    private batchedChanges;
    constructor(props: ITableViewPanelProps);
    getEntities(schema: Schema): Entity[];
    sortEntities: (a: Entity, b: Entity, prop: FTMProperty, direction: string) => 1 | -1;
    onEntityCreate(entityData: IEntityDatum): Entity;
    onEntityDelete(entity: Entity): void;
    onEntityUpdate(entity: Entity): void;
    addChangeToBatch(operation: string, entity: Entity | Promise<Entity>): void;
    visitEntity(entity: Entity): void;
    propagateToHistory(): void;
    fetchEntitySuggestions(query: string, schemata?: Array<Schema>): Promise<Entity[]>;
    resolveEntityReference(entityId: string): Entity | undefined;
    onColumnSort(newField: string): void;
    onSelectionUpdate(entity: Entity, additional?: boolean, allowUnselect?: boolean): void;
    render(): JSX.Element;
}
export {};
