import React from "react";
import InputField from "./field/inputField";
import SelectField from "./field/selectField";
import RadioField from "./field/radioField";
import DateField from "./field/dateField";
import CustomField from "./field/customField";
import DateRangeField from "./field/dateRangeField";
import BaseTableField from "./field/baseTableField";
declare const fieldsMap: {
    select: typeof SelectField;
    text: typeof InputField;
    radio: typeof RadioField;
    date: typeof DateField;
    dateRange: typeof DateRangeField;
    custom: typeof CustomField;
};
export interface IWebNextTableCellProps {
    rowData: any;
    column: {
        editType?: keyof typeof fieldsMap;
        dataKey: string;
        [prop: string]: any;
    };
    isRenderEditMode?: boolean;
    rowIndex: number;
    nextTablePrefix?: string;
    onCellDataChange?(options: {
        dataKey: IWebNextTableCellProps['column']['dataKey'];
        value: any;
        rowData: IWebNextTableCellProps['rowData'];
        rowIndex: IWebNextTableCellProps['rowIndex'];
    }): void;
}
interface IWebNextTableCellState {
    editable: boolean;
    currentValue: any;
}
export default class WebNextTableCell extends React.Component<IWebNextTableCellProps, IWebNextTableCellState> {
    fieldComponentRef: React.RefObject<BaseTableField>;
    constructor(props: IWebNextTableCellProps);
    setEditable(v: boolean): void;
    getRowValue(): any;
    saveCell(): void;
    resetCell(): void;
    validateCell(): any;
    _fillFields(rowData: IWebNextTableCellProps['rowData'], dataKey: IWebNextTableCellProps['column']['dataKey']): void;
    renderCellEditInner(): JSX.Element;
    render(): any;
}
export {};
