import { TBasePageEntity, TCustomEntityColumn } from '@cromwell/core';
import React from 'react';
import { IEntityListPage, TBaseEntityFilter, TEntityPageProps } from '../types';
export declare const configuredColumnsKey = "crw_entity_table_columns";
declare class EntityTable<TEntityType extends TBasePageEntity, TFilterType extends TBaseEntityFilter> extends React.Component<TEntityPageProps<TEntityType, TFilterType>, {
    isLoading: boolean;
    deleteSelectedOpen: boolean;
    configureColumnsOpen: boolean;
    columnSearch?: TCustomEntityColumn | null;
}> implements IEntityListPage<TEntityType, TFilterType> {
    private totalElements;
    private listId;
    private actionsWidth;
    private setLightbox?;
    private searchStore;
    constructor(props: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    resetList: () => void;
    updateList: () => void;
    handleDeleteItem: (itemToDelete: TEntityType) => Promise<boolean>;
    private handleToggleItemSelection;
    private handleDeleteSelected;
    getFilterInput: (tableColumns?: TCustomEntityColumn[]) => TFilterType;
    private getManyFilteredItems;
    getColumns: () => TCustomEntityColumn[];
    getColumnStyles: (column: TCustomEntityColumn, allColumns?: TCustomEntityColumn[]) => React.CSSProperties;
    private loadConfiguredColumns;
    clearAllFilters: () => void;
    private maximizeImages;
    render(): JSX.Element;
}
export default EntityTable;
