import { TablePipeline } from '../pipeline';
import { ArtColumn } from '../../interfaces';
export interface RangeSelectionFeatureOptions {
    /** 范围选中回调函数 */
    rangeSelectedChange?(cellRanges: CellRange[], isFinished: boolean): void;
    /** 是否阻止keydown的默认行为 */
    preventkDefaultOfKeyDownEvent?: boolean;
    /** 是否禁止多范围框选 */
    suppressMultiRangeSelection?: boolean;
}
interface FooterRowRange {
    startRow: number;
    endRow: number;
}
interface CellRange {
    startRow: number;
    endRow: number;
    columns: ArtColumn[];
    startColumn: ArtColumn;
    footerRowRange: FooterRowRange | null;
}
export declare const rangeSelectionKey = "rangeSelection";
export declare const lastClickCellKey = "lastClickCell";
export declare function rangeSelection(opts: RangeSelectionFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
/**
 * 获取框选范围唯一标识
 * @param {*} cellRange
 * @returns
 */
export declare function getCellRangeId(cellRange: CellRange): string;
export {};
