import { ITabulator } from '../../../../../../types/src/table';
import { default as CoreFeature } from '../../core/CoreFeature';
import { default as RangeComponent } from './RangeComponent';
import { default as SelectRange } from './SelectRange';

export default class Range extends CoreFeature {
    rangeManager: SelectRange;
    element: HTMLElement | null;
    initialized: boolean;
    initializing: {
        end: boolean;
        start: boolean;
    };
    destroyed: boolean;
    top: number;
    bottom: number;
    left: number;
    right: number;
    start: {
        col: number | undefined;
        row: number | undefined;
    };
    end: {
        col: number | undefined;
        row: number | undefined;
    };
    component: RangeComponent | undefined;
    constructor(table: ITabulator, rangeManager: SelectRange, start: any, end: any);
    initElement(): void;
    initBounds(start: any, end: any): void;
    setStart(row: number, col: number): void;
    setEnd(row: number, col: number): void;
    setBounds(start: any, end: any, visibleRows?: any): void;
    setStartBound(element: any): void;
    setEndBound(element: any): void;
    _updateMinMax(): void;
    _getTableColumns(): import('../../../../../../types/src/table').IColumn[];
    _getTableRows(): import('../../../../../../types/src/table').IRow[];
    layout(): void;
    atTopLeft(cell: any): boolean;
    atBottomRight(cell: any): boolean;
    atStart(cell: any): boolean;
    occupies(cell: any): boolean;
    occupiesRow(row: any): boolean;
    occupiesColumn(col: any): boolean;
    overlaps(left: number, top: number, right: number, bottom: number): boolean;
    getData(): any[];
    getCells(structured: boolean, component: boolean): any[];
    getStructuredCells(): any[];
    getRows(): import('../../../../../../types/src/table').IRow[];
    getColumns(): import('../../../../../../types/src/table').IColumn[];
    clearValues(): void;
    getBounds(component: boolean): {
        end: any;
        start: any;
    };
    getComponent(): RangeComponent;
    destroy(notify: boolean): void;
    destroyedGuard(func: string): boolean;
}
