/// <reference types="lodash" />
import { ReactNode } from 'react';
import { ColumnProps } from './Column';
import DataSet from '../data-set/DataSet';
import Record from '../data-set/Record';
import { DragColumnAlign, TableAutoHeightType, TableColumnTooltip, TableHeightType, TableQueryBarType } from './enum';
import ColumnGroups from './ColumnGroups';
import ColumnGroup from './ColumnGroup';
import { Customized, expandIconProps, TablePaginationConfig } from './Table';
import TableEditor from './TableEditor';
export declare const SELECTION_KEY = "__selection-column__";
export declare const ROW_NUMBER_KEY = "__row-number-column__";
export declare const DRAG_KEY = "__drag-column__";
export declare const EXPAND_KEY = "__expand-column__";
export declare const CUSTOMIZED_KEY = "__customized-column__";
export declare type HeaderText = {
    name: string;
    label: string;
};
export declare const getIdList: (startId: number, endId: number) => any[];
export declare function mergeDefaultProps(originalColumns: ColumnProps[], customizedColumns?: object, parent?: ColumnProps | null, defaultKey?: number[]): ColumnProps[];
export declare function normalizeColumns(elements: ReactNode, customizedColumns?: object, parent?: ColumnProps | null, defaultKey?: number[]): any[];
export default class TableStore {
    node: any;
    editors: Map<string, TableEditor>;
    props: any;
    customized: Customized;
    tempCustomized: Customized;
    loading?: boolean;
    originalColumns: ColumnProps[];
    bodyHeight: number;
    width?: number;
    height?: number;
    totalHeight?: number;
    lastScrollTop: number;
    lockColumnsBodyRowsHeight: any;
    lockColumnsFootRowsHeight: any;
    lockColumnsHeadRowsHeight: any;
    expandedRows: (string | number)[];
    isHeaderHover?: boolean;
    hoverRow?: Record;
    clickRow?: Record;
    currentEditorName?: string;
    styledHidden?: boolean;
    rowHighLight: boolean;
    customizedActiveKey: string[];
    mouseBatchChooseStartId: number;
    mouseBatchChooseEndId: number;
    mouseBatchChooseState: boolean;
    mouseBatchChooseIdList?: number[];
    multiLineHeight: number[];
    columnResizing?: boolean;
    inBatchExpansion: boolean;
    get dataSet(): DataSet;
    get prefixCls(): string;
    get customizable(): boolean;
    get autoHeight(): {
        type: TableAutoHeightType;
        diff: number;
    } | undefined;
    get heightType(): TableHeightType;
    get originalHeightType(): TableHeightType;
    /**
     * number 矫正虚拟滚动由于样式问题导致的高度不符问题
     */
    get virtualRowHeight(): number;
    get virtual(): boolean;
    get virtualHeight(): number;
    get virtualStartIndex(): number;
    get virtualTop(): number;
    get virtualData(): Record[];
    get hidden(): boolean;
    get alwaysShowRowBox(): boolean;
    get keyboard(): boolean;
    get columnResizable(): boolean;
    get columnHideable(): boolean;
    /**
     * 表头支持编辑
     */
    get columnTitleEditable(): boolean;
    get pagination(): TablePaginationConfig | false | undefined;
    get dragColumnAlign(): DragColumnAlign | undefined;
    get columnDraggable(): boolean;
    get rowDraggable(): boolean;
    get rowHeight(): 'auto' | number;
    get autoFootHeight(): boolean;
    get emptyText(): ReactNode;
    get highLightRow(): boolean | string;
    get parityRow(): boolean;
    get autoFocus(): boolean;
    get selectedHighLightRow(): boolean;
    get editorNextKeyEnterDown(): boolean;
    get border(): boolean;
    get queryBar(): TableQueryBarType;
    get expandIcon(): (props: expandIconProps) => ReactNode;
    get pristine(): boolean;
    get currentEditRecord(): Record | undefined;
    set currentEditRecord(record: Record | undefined);
    showCachedSelection?: boolean;
    get isTree(): boolean;
    get editing(): boolean;
    get hasRowBox(): boolean;
    get useMouseBatchChoose(): boolean;
    get showSelectionTips(): boolean;
    get overflowX(): boolean;
    get overflowY(): boolean;
    customizedColumnHeader(): JSX.Element;
    get customizedColumn(): ColumnProps | undefined;
    get expandColumn(): ColumnProps | undefined;
    get rowNumberColumn(): ColumnProps | undefined;
    get selectionColumn(): ColumnProps | undefined;
    get draggableColumn(): ColumnProps | undefined;
    get columns(): ColumnProps[];
    get leftColumns(): ColumnProps[];
    get centerColumns(): ColumnProps[];
    get rightColumns(): ColumnProps[];
    get columnGroups(): ColumnGroups;
    get groupedColumns(): ColumnGroup[];
    get leftGroupedColumns(): ColumnGroup[];
    get centerGroupedColumns(): ColumnGroup[];
    get rightGroupedColumns(): ColumnGroup[];
    get leafColumns(): ColumnProps[];
    get leftLeafColumns(): ColumnProps[];
    get centerLeafColumns(): ColumnProps[];
    get rightLeafColumns(): ColumnProps[];
    get leafNamedColumns(): ColumnProps[];
    get totalLeafColumnsWidth(): number;
    get leftLeafColumnsWidth(): number;
    get rightLeafColumnsWidth(): number;
    get hasCheckFieldColumn(): boolean;
    get hasFooter(): boolean;
    get isAnyColumnsResizable(): boolean;
    get isAnyColumnsLock(): boolean;
    get isAnyColumnsLeftLock(): boolean;
    get isAnyColumnsRightLock(): boolean;
    get data(): Record[];
    get indeterminate(): boolean;
    get allChecked(): boolean;
    get expandIconAsCell(): boolean;
    get expandIconColumnIndex(): number;
    get inlineEdit(): boolean;
    private handleSelectAllChange;
    constructor(node: any);
    getColumnTooltip(column: ColumnProps): TableColumnTooltip;
    getColumnHeaders(): Promise<HeaderText[]>;
    showEditor(name: string): void;
    setLastScrollTop(lastScrollTop: number): void;
    hideEditor(): void;
    changeMouseBatchChooseIdList(idList: number[]): void;
    showNextEditor(name: string, reserve: boolean): void;
    setProps(props: any): void;
    updateProps(props: any): void;
    initColumns(): void;
    isRowExpanded(record: Record): boolean;
    /**
     *
     * @param record 想修改的record
     * @param expanded 设置是否展开
     * @param disHandler 设置是否需要触发展开事件
     */
    setRowExpanded(record: Record, expanded: boolean, disHandler?: boolean): void;
    isRowPending(record: Record): boolean;
    setRowPending(record: Record, pending: boolean): void;
    isRowLoaded(record: Record): boolean;
    setRowLoaded(record: Record, loaded: boolean): void;
    isRowHover(record: Record): boolean;
    isRowClick(record: Record): boolean;
    setRowClicked(record: Record, click: boolean): void;
    get canTreeLoadData(): boolean;
    get isRowHighLight(): boolean;
    setRowHighLight(highLight: boolean): void;
    setRowHover(record: Record, hover: boolean): void;
    setMultiLineHeight(multiLineHeight: number): void;
    expandAll(): void;
    collapseAll(): void;
    onTreeNodeLoad({ record }: {
        record: Record;
    }): Promise<any>;
    private getLeafColumns;
    renderSelectionBox({ record }: {
        record: any;
    }): ReactNode;
    renderRowNumber({ record, dataSet }: {
        record: any;
        dataSet: any;
    }): ReactNode;
    renderDragBox({ record }: {
        record: any;
    }): any;
    changeCustomizedColumnValue(column: ColumnProps, value: object): void;
    saveCustomized(customized?: Customized | null): void;
    saveCustomizedDebounce: ((customized?: Customized | null | undefined) => void) & import("lodash").Cancelable;
    openCustomizationModal(modal: any): void;
    loadCustomized(): Promise<void>;
    private multipleSelectionRenderer;
}
