import { AnnotationSide, DiffLineEventBaseProps, ExpansionDirections, LineEventBaseProps } from "../types.js"; //#region src/managers/MouseEventManager.d.ts type LogTypes = "click" | "move" | "both" | "none"; type MouseEventManagerMode = "file" | "diff"; interface OnLineClickProps extends LineEventBaseProps { event: PointerEvent; } interface OnLineEnterLeaveProps extends LineEventBaseProps { event: PointerEvent; } interface OnDiffLineClickProps extends DiffLineEventBaseProps { event: PointerEvent; } interface OnDiffLineEnterLeaveProps extends DiffLineEventBaseProps { event: PointerEvent; } type EventClickProps = TMode extends "file" ? OnLineClickProps : OnDiffLineClickProps; type MouseEventEnterLeaveProps = TMode extends "file" ? OnLineEnterLeaveProps : OnDiffLineEnterLeaveProps; type GetHoveredLineResult = TMode extends "file" ? { lineNumber: number; } : { lineNumber: number; side: AnnotationSide; }; interface MouseEventManagerBaseOptions { enableHoverUtility?: boolean; onLineClick?(props: EventClickProps): unknown; onLineNumberClick?(props: EventClickProps): unknown; onLineEnter?(props: MouseEventEnterLeaveProps): unknown; onLineLeave?(props: MouseEventEnterLeaveProps): unknown; __debugMouseEvents?: LogTypes; } interface MouseEventManagerOptions extends MouseEventManagerBaseOptions { onHunkExpand?(hunkIndex: number, direction: ExpansionDirections): unknown; } declare class MouseEventManager { private mode; private options; private hoveredLine; private pre; private hoverSlot; constructor(mode: TMode, options: MouseEventManagerOptions); setOptions(options: MouseEventManagerOptions): void; cleanUp(): void; setup(pre: HTMLPreElement): void; getHoveredLine: () => GetHoveredLineResult | undefined; handleMouseClick: (event: PointerEvent) => void; handleMouseMove: (event: PointerEvent) => void; handleMouseLeave: (event: PointerEvent) => void; private handleMouseEvent; private getLineData; } declare function pluckMouseEventOptions({ onLineClick, onLineNumberClick, onLineEnter, onLineLeave, enableHoverUtility, __debugMouseEvents }: MouseEventManagerBaseOptions, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections) => unknown): MouseEventManagerOptions; //#endregion export { GetHoveredLineResult, LogTypes, MouseEventManager, MouseEventManagerBaseOptions, MouseEventManagerMode, MouseEventManagerOptions, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, pluckMouseEventOptions }; //# sourceMappingURL=MouseEventManager.d.ts.map