import { Editor } from '@tiptap/react';
import { default as React } from 'react';
import { IBEditorTableCellAddress, IBEditorTableColumnResizeDragState, IBEditorTableRowResizeDragState } from '../../core/types';
import { IBEditorTableHitTestSnapshot } from '../cell';
import { IBEditorTableRowResizeTarget } from '../resize';
import { IBEditorTableSelectionOverlay } from '../selection';
import { TBEditorMutableRef } from '../types';
export interface ITableMouseCaptureHandlerDeps {
    clearTableSelectionOverlay: () => void;
    editor: Editor | null;
    editorContainerRef: React.RefObject<HTMLDivElement | null>;
    enterTableCellTypingModeAtPoint: (cell: HTMLTableCellElement, address: IBEditorTableCellAddress | null, clientX: number, clientY: number) => void;
    handleMediaPointerDown: (event: React.SyntheticEvent<HTMLDivElement>) => boolean;
    isReadonly: boolean;
    isTitleMode: boolean;
    resolveTableResizeTargetTableForEvent: (target: EventTarget | Node | null | undefined, clientX: number, clientY: number, hitTestSnapshot?: IBEditorTableHitTestSnapshot | null) => HTMLTableElement | null | undefined;
    scheduleTableMenuPosition: (event?: Event) => void;
    startTableRowResize: (event: MouseEvent | React.SyntheticEvent<HTMLDivElement>, nativeEvent: MouseEvent, rowResizeTarget: IBEditorTableRowResizeTarget) => void;
    syncTableMenuPosition: (event?: Event) => void;
    syncTableSelectionOverlay: (cells?: HTMLTableCellElement[]) => IBEditorTableSelectionOverlay | null;
    tableColumnResizeDragRef: TBEditorMutableRef<IBEditorTableColumnResizeDragState | null>;
    tableEditingCellAddressRef: TBEditorMutableRef<IBEditorTableCellAddress | null>;
    tableRowResizeDragRef: TBEditorMutableRef<IBEditorTableRowResizeDragState | null>;
    tableRowResizeHoverRef: TBEditorMutableRef<IBEditorTableRowResizeTarget | null>;
    tableSelectionCellAddressesRef: TBEditorMutableRef<IBEditorTableCellAddress[]>;
    tableSelectionCellsRef: TBEditorMutableRef<HTMLTableCellElement[]>;
    tableSelectionRevisionRef?: TBEditorMutableRef<number>;
    updateTableMenuPosition: (nextPosition: {
        left: number;
        top: number;
    } | null) => void;
}
export declare function handleTableMenuInteractionEvent(event: React.SyntheticEvent<HTMLDivElement>, deps: ITableMouseCaptureHandlerDeps): void;
export declare function handleEditorMouseDownCaptureEvent(event: React.SyntheticEvent<HTMLDivElement>, deps: ITableMouseCaptureHandlerDeps): void;
export declare function handleEditorMouseUpCaptureEvent(event: React.SyntheticEvent<HTMLDivElement>, deps: ITableMouseCaptureHandlerDeps): void;
export declare function handleEditorDoubleClickCaptureEvent(event: React.SyntheticEvent<HTMLDivElement>, deps: ITableMouseCaptureHandlerDeps): void;
