import React, { Component, Key, ReactNode } from 'react';
import PropTypes from 'prop-types';
import { DraggableProvided, DraggableStateSnapshot } from 'react-beautiful-dnd';
import { ColumnProps } from './Column';
import { TableCellProps } from './TableCell';
import Record from '../data-set/Record';
import { ElementProps } from '../core/ViewComponent';
import { ColumnLock } from './enum';
export interface TableRowProps extends ElementProps {
    lock?: ColumnLock | boolean;
    columns: ColumnProps[];
    record: Record;
    index: number;
    snapshot?: DraggableStateSnapshot;
    provided?: DraggableProvided;
}
export default class TableRow extends Component<TableRowProps, any> {
    static displayName: string;
    static propTypes: {
        lock: PropTypes.Requireable<boolean | ColumnLock>;
        columns: PropTypes.Validator<any[]>;
        record: PropTypes.Validator<Record>;
    };
    static contextType: React.Context<{
        tableStore: import("./TableStore").default;
    }>;
    rowKey: Key;
    rowExternalProps: any;
    childrenRendered: boolean;
    isCurrent: boolean;
    node: HTMLTableRowElement | null;
    get expandable(): boolean;
    get isLoading(): boolean;
    get isLoaded(): boolean;
    get isExpanded(): boolean;
    set isExpanded(expanded: boolean);
    get isHover(): boolean;
    get isClicked(): boolean;
    set isClicked(click: boolean);
    get isHighLightRow(): boolean;
    set isHover(hover: boolean);
    private saveRef;
    handleMouseEnter(): void;
    handleMouseLeave(): void;
    handleSelectionByClick(e: any): Promise<void>;
    handleSelectionByMouseDown(e: any): void;
    handleSelectionByDblClick(e: any): void;
    handleExpandChange(): void;
    handleClickCapture(e: any): void;
    handleClick(e: any): any;
    handleResize(key: Key, height: number): void;
    setRowHeight(key: Key, height: number): void;
    getCell(column: ColumnProps, index: number, props: Partial<TableCellProps>): ReactNode;
    focusRow(): void;
    componentDidMount(): void;
    componentDidUpdate(): void;
    componentWillUnmount(): void;
    handleSelection(): void;
    hasExpandIcon(columnIndex: any): boolean;
    syncLoadData(): void;
    renderExpandIcon(): any;
    renderExpandRow(): ReactNode[];
    getColumns(): ({} | null | undefined)[];
    render(): ({} | null | undefined)[];
}
