import { ChangeItem, Column, ConfigType, EventCallback, EVirtTableOptions, FilterMethod, Position, ValidateField, ValidateItemError } from './types';
import Context from './Context';
import { mergeColCell, mergeRowCell, getSpanArrByRow, getSpanObjByColumn } from './util';
import './style.css';
export default class EVirtTable {
    private options;
    private scroller;
    private header;
    private body;
    private footer;
    private selector;
    private autofill;
    private tooltip;
    private editor;
    private empty;
    private overlayer;
    private contextMenu;
    ctx: Context;
    constructor(target: HTMLDivElement, options: EVirtTableOptions);
    private createContainer;
    draw(ignoreOverlayer?: boolean): void;
    loadConfig(_config: ConfigType): void;
    loadColumns(columns: Column[]): void;
    loadData(data: any[]): void;
    loadFooterData(data: any[]): void;
    setLoading(ladong: boolean): void;
    on(event: string, callback: EventCallback): void;
    emit(event: string, ...args: any[]): void;
    off(event: string, callback: EventCallback): void;
    filterMethod(func: FilterMethod): void;
    editCell(rowIndex: number, colIndex: number): void;
    setItemValue(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean, isEditor?: boolean): void;
    batchSetItemValue(list: ChangeItem[], history?: boolean): void;
    setItemValueByEditor(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean): void;
    clearEditor(): void;
    doLayout(): void;
    getChangedData(): {
        rowKey: string;
        colKey: string;
        row: any;
        originalValue: any;
        value: any;
    }[];
    getChangedRows(): any[];
    clearValidate(): void;
    validateFields(ValidateFields: ValidateField[], scrollError?: boolean): Promise<unknown>;
    validate(scrollError?: boolean): Promise<unknown>;
    setValidations(errors: ValidateItemError[]): void;
    getValidations(): Promise<unknown>;
    hasValidationError(): boolean;
    scrollTo(x: number, y: number): void;
    scrollXTo(x: number): void;
    scrollToColkey(key: string): void;
    scrollToRowkey(key: string): void;
    scrollToColIndex(colIndex: number): void;
    scrollToRowIndex(rowIndex: number): void;
    scrollYTo(y: number): void;
    setExpandRowKeys(keys: any[], expand?: boolean): void;
    clearSelection(): void;
    toggleRowSelection(row: any): void;
    setSelectionByRows(rows: any[], selected?: boolean): void;
    setSelectionByRowKeys(keys: string[], selected?: boolean): void;
    toggleAllSelection(): void;
    toggleRowExpand(rowKey: string, expand: boolean): void;
    toggleExpandAll(expand: boolean): void;
    getSelectionRows(): any[];
    getPositionForRowIndex(rowIndex: number): Position;
    getCellValue(rowKey: string, key: string): any;
    getCellValueByIndex(rowIndex: number, colIndex: number): {
        rowKey: string;
        key: string;
        value: any;
    } | null;
    contextMenuHide(): void;
    getUtils(): {
        mergeColCell: typeof mergeColCell;
        mergeRowCell: typeof mergeRowCell;
        getSpanArrByRow: typeof getSpanArrByRow;
        getSpanObjByColumn: typeof getSpanObjByColumn;
    };
    /**
     * 销毁
     */
    destroy(): void;
}
