import type { Group } from '../scenegraph/graphic/group'; import type { Icon } from '../scenegraph/graphic/icon'; import type { CellAddress, CellPosition, CellRange, DropDownMenuHighlightInfo, MenuListItem, SortOrder, SortState, CustomSelectionStyle } from '../ts-types'; import { HighlightScope, InteractionState } from '../ts-types'; import { Bounds } from '@visactor/vutils'; import type { FederatedWheelEvent } from './../vrender'; import type { BaseTableAPI } from '../ts-types/base-table'; export declare class StateManager { table: BaseTableAPI; interactionState: InteractionState; interactionStateBeforeScroll?: InteractionState; select: { isSelectAll?: boolean; selectInline?: 'col' | 'row' | false; ranges: (CellRange & { skipBodyMerge?: boolean; })[]; highlightScope: HighlightScope; cellPos: CellPosition; singleStyle?: boolean; disableHeader?: boolean; disableCtrlMultiSelect?: boolean; disableShiftMultiSelect?: boolean; headerSelectMode?: 'inline' | 'cell' | 'body'; cornerHeaderSelectMode?: 'inline' | 'cell' | 'body' | 'all'; highlightInRange?: boolean; selecting: boolean; customSelectRanges?: { range: CellRange; style: CustomSelectionStyle; }[]; }; fillHandle: { direction?: 'top' | 'bottom' | 'left' | 'right'; directionRow?: boolean; isFilling: boolean; startX: number; startY: number; beforeFillMinCol?: number; beforeFillMinRow?: number; beforeFillMaxCol?: number; beforeFillMaxRow?: number; }; hover: { highlightScope: HighlightScope; singleStyle?: boolean; disableHeader?: boolean; cellPos: CellPosition; cellPosContainHeader?: CellPosition; }; hoverIcon: { col: number; row: number; icon: Icon | null; }; residentHoverIcon?: { col: number; row: number; icon: Icon | null; }; columnResize: { col: number; x: number; resizing: boolean; isRightFrozen?: boolean; }; rowResize: { row: number; y: number; resizing: boolean; isBottomFrozen?: boolean; }; columnMove: { colSource: number; colTarget: number; rowSource: number; rowSourceSize: number; rowTarget: number; rowTargetSize: number; x: number; y: number; moving: boolean; movingColumnOrRow: 'column' | 'row'; }; menu: { x: number; y: number; isShow: boolean; itemList: MenuListItem[]; bounds: Bounds; highlightIndex: number; dropDownMenuHighlight?: DropDownMenuHighlightInfo[]; }; sort: Array<{ col: number; row: number; field?: string; order: SortOrder; icon?: Icon; }>; frozen: { col: number; row: number; icon?: Icon; }; scroll: { horizontalBarPos: number; verticalBarPos: number; frozenHorizontalBarPos: number; rightFrozenHorizontalBarPos: number; }; tablePosition: { absoluteX: number; absoluteY: number; }; drill: { dimensionKey?: string; title?: string; drillDown?: boolean; drillUp?: boolean; col: number; row: number; }; sparkLine: { col: number; row: number; }; _clearVerticalScrollBar: any; _clearHorizontalScrollBar: any; _frozenObserver?: ResizeObserver; fastScrolling: boolean; checkedState: Map>; headerCheckedState: Record; _checkboxCellTypeFields: (string | number)[]; _headerCheckFuncs: Record; radioState: Record>; resetInteractionState: (this: any, ...args: any) => any; constructor(table: BaseTableAPI); initState(): void; updateOptionSetState(): void; endResizeIfResizing(): void; _updateOptionSetState(): void; _initState(): void; setHoverState(): void; setSelectState(): void; isSelected(col: number, row: number): boolean; setSortState(sortState: SortState | SortState[]): void; setFrozenState(): void; updateInteractionState(mode: InteractionState): void; updateHoverhighlightScope(mode: HighlightScope): void; updateHoverPos(col: number, row: number): void; updateSelectPos(col: number, row: number, enableShiftSelectMode?: boolean, enableCtrlSelectMode?: boolean, isSelectAll?: boolean, makeSelectCellVisible?: boolean, skipBodyMerge?: boolean): void; checkCellRangeInSelect(cellPosStart: CellAddress, cellPosEnd: CellAddress): boolean; updateHoverIcon(col: number, row: number, target: any, cellGroup: Group): void; isResizeCol(): boolean; isResizeRow(): boolean; isFillHandle(): boolean; isSelecting(): boolean; endSelectCells(fireListener?: boolean, fireClear?: boolean): void; endResizeCol(): void; startResizeCol(col: number, x: number, y: number, isRightFrozen?: boolean): void; updateResizeCol(xInTable: number, yInTable: number): void; endResizeRow(): void; startResizeRow(row: number, x: number, y: number, isBottomFrozen?: boolean): void; updateResizeRow(xInTable: number, yInTable: number): void; startFillSelect(x: number, y: number): void; endFillSelect(): void; startMoveCol(col: number, row: number, x: number, y: number, event: MouseEvent | PointerEvent | TouchEvent, dragColumnOrRow?: 'column' | 'row'): void; updateMoveCol(col: number, row: number, x: number, y: number, event: MouseEvent | PointerEvent | TouchEvent): void; isMoveCol(): boolean; endMoveCol(): boolean; checkFrozen(): void; setFrozenColsScrollLeft(left: number, triggerRender?: boolean): void; setRightFrozenColsScrollLeft(left: number, triggerRender?: boolean): void; updateFrozenHorizontalScrollBar(xRatio: number): void; updateRightFrozenHorizontalScrollBar(xRatio: number): void; clearFrozenObserver(): void; setFrozenCol(col: number): void; setFrozenRow(row: number): void; checkVerticalScrollBarEnd(): void; checkHorizontalScrollBarEnd(): void; updateVerticalScrollBar(yRatio: number): void; updateHorizontalScrollBar(xRatio: number): void; setScrollTop(top: number, event?: FederatedWheelEvent, triggerEvent?: boolean): void; setScrollLeft(left: number, event?: FederatedWheelEvent, triggerEvent?: boolean): void; hideVerticalScrollBar(): void; showVerticalScrollBar(autoHide?: boolean): void; hideHorizontalScrollBar(): void; showHorizontalScrollBar(autoHide?: boolean, target?: 'body' | 'frozen' | 'rightFrozen' | 'all'): void; triggerContextMenu(col: number, row: number, x: number, y: number): void; showContextMenu(col: number, row: number, x: number, y: number): void; triggerDropDownMenu(col: number, row: number, x: number, y: number, event: Event): void; showDropDownMenu(col: number, row: number, x: number, y: number): void; hideMenu(): void; setDropDownMenuHighlight(dropDownMenuInfo: DropDownMenuHighlightInfo[]): void; dropDownMenuIsHighlight(colNow: number, rowNow: number, index: number): boolean; triggerSort(col: number, row: number, iconMark: Icon, event: Event): void; setSelectInline(selectInline: 'col' | 'row' | false): void; updateSortState(sortState: SortState[]): void; triggerFreeze(col: number, row: number, iconMark: Icon): void; updateCursor(mode?: string): void; updateDrillState(dimensionKey: string, title: string, drillDown: boolean, drillUp: boolean, col: number, row: number): void; updateSparklineHoverPose(col: number, row: number, x: number, y: number): void; setCheckedState(col: number, row: number, field: string | number, checked: boolean | 'indeterminate'): void; setHeaderCheckedState(field: string | number, checked: boolean | 'indeterminate'): void; syncCheckedState(col: number, row: number, field: string | number, checked: boolean): boolean | 'indeterminate'; initCheckedState(records: any[]): void; updateHeaderCheckedState(field: string | number, col: number, row: number): boolean | 'indeterminate'; initLeftRecordsCheckState(records: any[]): void; setRadioState(col: number, row: number, field: string | number, radioType: 'column' | 'cell', indexInCell: number | undefined): void; syncRadioState(col: number, row: number, field: string | number, radioType: 'column' | 'cell', indexInCell: number | undefined, isChecked: boolean): boolean; changeCheckboxAndRadioOrder(sourceIndex: number, targetIndex: number): void; setCustomSelectRanges(customSelectRanges: { range: CellRange; style: CustomSelectionStyle; }[]): void; }