import { Key, ReactElement, ReactNode } from 'react';
import { DraggingStyle, DropResult, NotDraggingStyle } from 'react-beautiful-dnd';
import isStickySupport from '../../../lib/_util/isStickySupport';
import { ColumnProps } from './Column';
import Record from '../data-set/Record';
import { RecordCachedType } from '../data-set/enum';
import Field from '../data-set/Field';
import { ColumnLock, TablePaginationPosition } from './enum';
import { FormFieldProps } from '../field/FormField';
import DataSet, { Group } from '../data-set/DataSet';
import TableStore from './TableStore';
import { TablePaginationConfig } from './Table';
import ColumnGroup from './ColumnGroup';
import { AggregationTreeProps } from './AggregationTree';
import { TriggerFieldProps } from '../trigger-field/TriggerField';
export { isStickySupport, };
export declare function getEditorByField(field: Field, record?: Record, isQueryField?: boolean, isFlat?: boolean): ReactElement<FormFieldProps | TriggerFieldProps>;
export declare function getPlaceholderByField(field?: Field, record?: Record): string | undefined;
export declare function getEditorByColumnAndRecord(column: ColumnProps, record?: Record): ReactElement<FormFieldProps> | undefined;
export declare function isInCellEditor(element?: ReactElement<FormFieldProps>): boolean;
export declare function findRow(tableStore: TableStore, record: Record): HTMLTableRowElement | null;
export declare function findCell(tableStore: TableStore, name?: Key, lock?: ColumnLock | boolean, record?: Record, extra?: boolean): HTMLSpanElement | HTMLTableDataCellElement | undefined;
export declare function isCanEdictingRow(element: any): boolean;
export declare function findIndexedSibling(element: any, direction: any): HTMLTableRowElement | null;
export declare function isDisabledRow(record: Record): boolean;
export declare function isSelectedRow(record: Record): boolean;
export interface HeaderOptions extends ColumnProps {
    dataSet: DataSet;
    group?: Group | undefined;
    groups?: Group[] | undefined;
    aggregationTree?: ReactElement<AggregationTreeProps>[];
}
export declare function getHeader(column: HeaderOptions): ReactNode;
export declare function getColumnKey({ name, key }: ColumnProps): Key;
export declare function getColumnLock(lock?: ColumnLock | boolean): ColumnLock | false;
export declare function getPaginationPosition(pagination?: TablePaginationConfig): TablePaginationPosition;
export declare function getHeight(el: HTMLElement): number;
export declare function getTableHeaderRows(columns: ColumnGroup[], currentRow?: number, rows?: ColumnGroup[][]): ColumnGroup[][];
export declare function isDropresult(dropResult: any): dropResult is DropResult;
export declare function isDraggingStyle(style?: DraggingStyle | NotDraggingStyle): style is DraggingStyle;
export declare function getMaxClientWidth(element: Element): number;
export declare function onlyCustomizedColumn(tableStore: TableStore): boolean;
export declare function getCellVerticalSize(element: HTMLElement, prefixCls?: string): number | undefined;
export declare function getCachedRecords(dataSet: DataSet, type?: RecordCachedType, showCachedTips?: boolean): Record[];
export declare function getCachedSelectableRecords(dataSet: DataSet, type?: RecordCachedType, showCachedTips?: boolean, filter?: (record: Record) => boolean): Record[];
export declare function getCurrentSelectableCounts(dataSet: DataSet, filter?: (record: Record) => boolean): [number, number];
export declare function getCachedSelectableCounts(dataSet: DataSet, type?: RecordCachedType, showCachedTips?: boolean, filter?: (record: Record) => boolean): [number, number];
export declare function getCount(dataSet: DataSet, type?: RecordCachedType): number;
