import { Editor } from '@tiptap/react';
import { default as React } from 'react';
import { IBEditorTableCellAddress, IBEditorTableDragAnchor, IBEditorTableResizeGuideState, IBEditorTableRowResizeDragState } from '../../core/types';
import { IBEditorTableSelectionOverlay } from '../selection';
import { TBEditorMutableRef } from '../types';
import { IBEditorTableDragSelectionSnapshot, IBEditorTableDragSelectionSyncSnapshot } from './tablePointerTypes';
interface ITablePointerUpSelectionResult {
    activeCell: HTMLTableCellElement | null;
    pointerUpSelectionCells: HTMLTableCellElement[];
}
interface ITablePointerUpTrackingRefs {
    lastSyncedDragSelectionRef: TBEditorMutableRef<IBEditorTableDragSelectionSyncSnapshot | null>;
    tableCtrlSelectionPointerRef: TBEditorMutableRef<boolean>;
    tableDragAnchorRef: TBEditorMutableRef<IBEditorTableDragAnchor | null>;
    tableDragMovedRef: TBEditorMutableRef<boolean>;
    tablePreserveSelectionPointerRef: TBEditorMutableRef<boolean>;
}
interface IFinishTableRowResizeOnPointerUpParams {
    editor: Editor;
    editorContainerRef: React.RefObject<HTMLDivElement | null>;
    event: MouseEvent;
    rowResizeDrag: IBEditorTableRowResizeDragState;
    scheduleTableMenuPosition: (event?: Event) => void;
    syncTableSelectionOverlay: (cells?: HTMLTableCellElement[]) => IBEditorTableSelectionOverlay | null;
    tableRowResizeDragRef: TBEditorMutableRef<IBEditorTableRowResizeDragState | null>;
    tableSelectionCellsRef: TBEditorMutableRef<HTMLTableCellElement[]>;
    updateTableResizeGuide: (nextGuide: IBEditorTableResizeGuideState | null) => void;
}
export declare function finishTableRowResizeOnPointerUp({ editor, editorContainerRef, event, rowResizeDrag, scheduleTableMenuPosition, syncTableSelectionOverlay, tableRowResizeDragRef, tableSelectionCellsRef, updateTableResizeGuide, }: IFinishTableRowResizeOnPointerUpParams): void;
interface IHandleTablePointerUpTypingCellParams {
    cell: HTMLTableCellElement;
    cellAddress: IBEditorTableCellAddress | null;
    editorElement: HTMLElement | null;
    syncTableSelectionOverlay: (cells?: HTMLTableCellElement[]) => IBEditorTableSelectionOverlay | null;
    tableDragAnchorRef: TBEditorMutableRef<IBEditorTableDragAnchor | null>;
    tableDragMovedRef: TBEditorMutableRef<boolean>;
    tableEditingCellAddressRef: TBEditorMutableRef<IBEditorTableCellAddress | null>;
    tableSelectionCellsRef: TBEditorMutableRef<HTMLTableCellElement[]>;
    updateTableMenuPosition: (nextPosition: {
        left: number;
        top: number;
    } | null) => void;
}
export declare function handleTablePointerUpTypingCell({ cell, cellAddress, editorElement, syncTableSelectionOverlay, tableDragAnchorRef, tableDragMovedRef, tableEditingCellAddressRef, tableSelectionCellsRef, updateTableMenuPosition, }: IHandleTablePointerUpTypingCellParams): boolean;
interface IScheduleTypingTableSelectionMarkerRestoreParams {
    editor: Editor;
    editorElement: HTMLElement;
    tableEditingCellAddressRef: TBEditorMutableRef<IBEditorTableCellAddress | null>;
    tableSelectionCellAddressesRef: TBEditorMutableRef<IBEditorTableCellAddress[]>;
    tableSelectionCellsRef: TBEditorMutableRef<HTMLTableCellElement[]>;
}
export declare function scheduleTypingTableSelectionMarkerRestore(params: IScheduleTypingTableSelectionMarkerRestoreParams): void;
export declare function resetTablePointerUpTracking(refs: ITablePointerUpTrackingRefs): {
    dragSelectionSnapshot: IBEditorTableDragSelectionSnapshot | null;
    pointerDownAnchor: IBEditorTableDragAnchor | null;
    wasCtrlSelectionPointer: boolean;
    wasDragSelection: boolean;
    wasPreserveSelectionPointer: boolean;
};
interface IResolveTablePointerUpSelectionParams {
    cell: HTMLTableCellElement | null;
    cellAddress: IBEditorTableCellAddress | null;
    clearTableSelectionOverlay: () => void;
    dragSelectionSnapshot: IBEditorTableDragSelectionSnapshot | null;
    editor: Editor;
    editorElement: HTMLElement | null;
    pointerDownAnchor: IBEditorTableDragAnchor | null;
    syncTableSelectionOverlay: (cells?: HTMLTableCellElement[]) => IBEditorTableSelectionOverlay | null;
    tableSelectionCellsRef: TBEditorMutableRef<HTMLTableCellElement[]>;
    wasCtrlSelectionPointer: boolean;
    wasDragSelection: boolean;
    wasPreserveSelectionPointer: boolean;
}
export declare function resolveTablePointerUpSelection({ cell, cellAddress, clearTableSelectionOverlay, dragSelectionSnapshot, editor, editorElement, pointerDownAnchor, syncTableSelectionOverlay, tableSelectionCellsRef, wasCtrlSelectionPointer, wasDragSelection, wasPreserveSelectionPointer, }: IResolveTablePointerUpSelectionParams): ITablePointerUpSelectionResult;
export {};
