import * as React from 'react';
import PropTypes from 'prop-types';
import { StandardProps, RowDataType } from './common';
export interface CellProps extends StandardProps {
    align?: 'left' | 'center' | 'right';
    verticalAlign?: 'top' | 'middle' | 'bottom';
    className?: string;
    classPrefix?: string;
    dataKey?: string;
    isHeaderCell?: boolean;
    width?: number;
    height?: number | ((rowData: object) => number);
    left?: number;
    headerHeight?: number;
    style?: React.CSSProperties;
    firstColumn?: boolean;
    lastColumn?: boolean;
    hasChildren?: boolean;
    children?: React.ReactNode | ((rowData: RowDataType, rowIndex: number) => React.ReactNode);
    rowKey?: string | number;
    rowIndex?: number;
    rowSpan?: number;
    rowData?: RowDataType;
    depth?: number;
    onTreeToggle?: (rowKey?: string | number, rowIndex?: number, rowData?: RowDataType, event?: React.MouseEvent) => void;
    renderTreeToggle?: (expandButton: React.ReactNode, rowData?: RowDataType, expanded?: boolean) => React.ReactNode;
    renderCell?: (contentChildren: any) => React.ReactNode;
    wordWrap?: boolean;
    hidden?: boolean;
    treeCol?: boolean;
    expanded?: boolean;
    isDragging?: boolean;
}
export declare const propTypes: {
    align: PropTypes.Requireable<string>;
    verticalAlign: PropTypes.Requireable<string>;
    className: PropTypes.Requireable<string>;
    classPrefix: PropTypes.Requireable<string>;
    dataKey: PropTypes.Requireable<string>;
    isHeaderCell: PropTypes.Requireable<boolean>;
    width: PropTypes.Requireable<number>;
    height: PropTypes.Requireable<number | ((...args: any[]) => any)>;
    left: PropTypes.Requireable<number>;
    headerHeight: PropTypes.Requireable<number>;
    style: PropTypes.Requireable<object>;
    firstColumn: PropTypes.Requireable<boolean>;
    lastColumn: PropTypes.Requireable<boolean>;
    hasChildren: PropTypes.Requireable<boolean>;
    children: PropTypes.Requireable<any>;
    rowKey: PropTypes.Requireable<string | number>;
    rowIndex: PropTypes.Requireable<number>;
    rowData: PropTypes.Requireable<object>;
    depth: PropTypes.Requireable<number>;
    onTreeToggle: PropTypes.Requireable<(...args: any[]) => any>;
    renderTreeToggle: PropTypes.Requireable<(...args: any[]) => any>;
    renderCell: PropTypes.Requireable<(...args: any[]) => any>;
    wordWrap: PropTypes.Requireable<boolean>;
    hidden: PropTypes.Requireable<boolean>;
    treeCol: PropTypes.Requireable<boolean>;
    expanded: PropTypes.Requireable<boolean>;
    groupHeader: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    groupCount: PropTypes.Requireable<number>;
    isDragging: PropTypes.Requireable<boolean>;
};
declare class Cell extends React.PureComponent<CellProps> {
    static get contextType(): React.Context<import("./TableContext").Props>;
    static propTypes: {
        align: PropTypes.Requireable<string>;
        verticalAlign: PropTypes.Requireable<string>;
        className: PropTypes.Requireable<string>;
        classPrefix: PropTypes.Requireable<string>;
        dataKey: PropTypes.Requireable<string>;
        isHeaderCell: PropTypes.Requireable<boolean>;
        width: PropTypes.Requireable<number>;
        height: PropTypes.Requireable<number | ((...args: any[]) => any)>;
        left: PropTypes.Requireable<number>;
        headerHeight: PropTypes.Requireable<number>;
        style: PropTypes.Requireable<object>;
        firstColumn: PropTypes.Requireable<boolean>;
        lastColumn: PropTypes.Requireable<boolean>;
        hasChildren: PropTypes.Requireable<boolean>;
        children: PropTypes.Requireable<any>;
        rowKey: PropTypes.Requireable<string | number>;
        rowIndex: PropTypes.Requireable<number>;
        rowData: PropTypes.Requireable<object>;
        depth: PropTypes.Requireable<number>;
        onTreeToggle: PropTypes.Requireable<(...args: any[]) => any>;
        renderTreeToggle: PropTypes.Requireable<(...args: any[]) => any>;
        renderCell: PropTypes.Requireable<(...args: any[]) => any>;
        wordWrap: PropTypes.Requireable<boolean>;
        hidden: PropTypes.Requireable<boolean>;
        treeCol: PropTypes.Requireable<boolean>;
        expanded: PropTypes.Requireable<boolean>;
        groupHeader: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        groupCount: PropTypes.Requireable<number>;
        isDragging: PropTypes.Requireable<boolean>;
    };
    static defaultProps: {
        classPrefix: string;
        headerHeight: number;
        depth: number;
        height: number;
        width: number;
        left: number;
    };
    addPrefix: (name: string) => string;
    isTreeCol(): boolean;
    getHeight(): any;
    handleExpandClick: (event: React.MouseEvent<Element, MouseEvent>) => void;
    renderTreeNodeExpandIcon(): JSX.Element | null;
    render(): JSX.Element | null;
}
export default Cell;
