import * as React from 'react';
import { DisplayTemplate, DisplayMode } from '@amalto/typings';
declare module DataItem {
    interface Props extends React.ClassAttributes<DataItem> {
        displayValue: JSX.Element | string | number;
        displayValueMaxLength?: number;
        columnId: string;
        cssClass?: string;
        editCallback?: (key: string, value: string) => void;
        enterPressCallback?: () => void;
        tabOnLastCellCallback?: () => void;
        displayContextMenu?: (columnId: string, value: string, posX: number, posY: number) => void;
        editMode?: boolean;
        readOnly?: boolean;
        isEdited?: boolean;
        lastEditable?: boolean;
        allowDisplayAsTextAreaOnReadonly?: boolean;
        options?: {
            value: string | number;
            label?: string;
            disabled?: boolean;
        }[];
        validate?: (value: string) => any;
        displayTemplate?: DisplayTemplate;
        displayMode: DisplayMode;
        label?: JSX.Element | string;
    }
    interface State {
        showAsTextarea?: boolean;
        invalidMsg?: string;
        valueMaxLength?: number;
        contentTooLong?: boolean;
    }
}
declare class DataItem extends React.Component<DataItem.Props, DataItem.State> {
    constructor(props: DataItem.Props);
    componentDidMount(): void;
    componentDidUpdate(prevProps: DataItem.Props): void;
    render(): JSX.Element;
    private closeTextareaDisplay;
    private toggleTextareaDisplay;
    private handleEdit;
    private keyPressHandler;
    private handleTabPress;
    private displayContextMenu;
    private truncateDisplayValue;
}
export default DataItem;
