import { default as CxCheckbox } from '../../../../../../atoms/src/components/checkbox/checkbox.ts';
import { default as Module } from '../../core/Module';
import { default as Row } from '../../core/row/Row';
import { default as Tabulator } from '../../core/Tabulator';

export default class SelectRow extends Module {
    static moduleName: string;
    static moduleExtensions: {
        format: {
            formatters: {
                rowSelection: typeof import('./extensions/formatters/rowSelection').default;
            };
        };
    };
    selecting: boolean;
    lastClickedRow: Row | false;
    selectPrev: Row[];
    selectedRows: Row[];
    headerCheckboxElement: CxCheckbox | null;
    constructor(table: Tabulator);
    initialize(): void;
    deprecatedOptionsCheck(): void;
    rowRetrieve(type: string, prevValue: any): any;
    rowDeleted(row: Row): void;
    clearSelectionData(silent?: boolean): void;
    initializeRow(row: Row): void;
    handleComplexRowClick(row: Row, e: MouseEvent): void;
    checkRowSelectability(row: Row): boolean;
    toggleRow(row: Row): void;
    selectRows(rows?: any): void;
    _selectRow(rowInfo: any, silent?: boolean, force?: boolean): Row | false;
    isRowSelected(row: Row): boolean;
    deselectRows(rows?: any, silent?: boolean): void;
    _deselectRow(rowInfo: any, silent?: boolean): Row | false;
    getSelectedData(): any[];
    getSelectedRows(): any[];
    _rowSelectionChanged(silent?: boolean, selected?: Row[], deselected?: Row[]): void;
    registerRowSelectCheckbox(row: any, element: CxCheckbox): void;
    registerHeaderSelectCheckbox(element: CxCheckbox): void;
    childRowSelection(row: Row, select: boolean): void;
}
