import type { Ref } from 'vue'; import type { ColumnGroupType, ColumnType, DefaultRecordType, FinallyColumnType, Key } from '../components/interface'; export declare type RowPinned = 'top' | 'bottom' | null; export interface CellRangesItem { startRow: { rowIndex: number; rowPinned: RowPinned; }; endRow: { rowIndex: number; rowPinned: RowPinned; }; columns: FinallyColumnType[]; startColumn: FinallyColumnType; } export interface SelectedRangeItem { startColumn: ColumnType | ColumnGroupType; startRow: { rowIndex: number; recordIndexs: number[]; }; endRow: { rowIndex: number; recordIndexs: number[]; }; columns: (ColumnType | ColumnGroupType)[]; flattenData: DefaultRecordType[]; } export declare type Row = { rowIndex: number; rowPinned: RowPinned; }; export declare type RangeCell = { rowIndex: number; rowPinned: RowPinned; column?: FinallyColumnType; }; export interface AppendCellRange { columnsKey?: Key[]; columnStartKey?: Key; columnEndKey?: Key; rowStartIndex?: number; rowEndIndex?: number; } export interface CustomMouseEvent extends MouseEvent { cellInfo: { cellPosition: RangeCell; cellTarget: EventTarget; level: number; }; } export interface InnerKeydownPayload { cellPosition: RangeCell; isEditing: boolean; } export interface KeydownPayload { cellPosition: { rowIndex: number; column: ColumnType; }; isEditing: boolean; } export interface AutoScrollParams { getScrollContainer: () => HTMLDivElement; scrollAxis: string | string[]; scrollByTick?: Ref; onScrollCallback?: () => void; getVerticalPosition: () => number; setVerticalPosition: (pos: number) => void; getHorizontalPosition: () => number; setHorizontalPosition: (pos: number) => void; showVerticalScrollbar: Ref; showHorizontalScrollbar: Ref; } export interface FormatRangeCellTextParams { record: DefaultRecordType; column: ColumnType | ColumnGroupType; index: number; recordIndexs: number[]; key: Key; value: any; }