import { ShadowlessElement } from '@blockeditor/lit'; import type { ReactiveController } from 'lit'; import type { Ref } from 'lit/directives/ref.js'; import type { CellFocus, MultiSelection, TableViewSelection } from '../../../_common/types.js'; import type { DatabaseCellContainer } from '../components/cell-container.js'; import type { DataViewTable } from '../table-view.js'; export declare class TableSelectionController implements ReactiveController { host: DataViewTable; __selectionElement: SelectionElement; private get focusSelectionElement(); private get areaSelectionElement(); constructor(host: DataViewTable); private _tableViewSelection?; get tableContainer(): Element; get viewData(): import("../table-view-manager.js").DataViewTableManager; hostConnected(): void; private handleSelectionChange; private handleDragEvent; isValidSelection(selection?: TableViewSelection): boolean; private clearSelection; get selection(): TableViewSelection | undefined; set selection(data: Omit | undefined); cellPosition(groupKey: string | undefined, left: number, top: number): (x1: number, x2: number, y1: number, y2: number) => { row: MultiSelection; column: MultiSelection; }; startDrag(evt: PointerEvent, cell: DatabaseCellContainer): void; focusTo(position: 'left' | 'right' | 'up' | 'down'): void; selectRange(selection: TableViewSelection, row: MultiSelection, column: MultiSelection): void; getCellContainer(groupKey: string | undefined, rowIndex: number, columnIndex: number): DatabaseCellContainer | undefined; rows(groupKey: string | undefined): NodeListOf; selectionStyleUpdateTask: number; updateSelection(tableSelection?: TableViewSelection): void; updateSelectionStyle(groupKey: string | undefined, rowSelection?: MultiSelection, columnSelection?: MultiSelection): void; updateFocusSelectionStyle(groupKey: string | undefined, focus?: CellFocus, isRowSelection?: boolean, isEditing?: boolean): void; getRect(groupKey: string | undefined, top: number, bottom: number, left: number, right: number): { top: number; left: number; width: number; height: number; scale: number; }; selectRow(index: number): void; toggleRow(index: number): void; focusFirstCell(): void; private scrollToFocus; insertRowBefore(rowId: string): void; insertRowAfter(groupKey: string | undefined, rowId: string): void; private get view(); deleteRow(rowId: string): void; private checkSelection; isRowSelection(groupKey: string | undefined, rowIndex: number): boolean; } declare class SelectionElement extends ShadowlessElement { static styles: import("lit").CSSResult; focusRef: Ref; selectionRef: Ref; render(): import("lit").TemplateResult<1>; } export {}; //# sourceMappingURL=selection.d.ts.map