import * as React from "react"; import type { CSSCursor } from "./css-cursor"; import type { AriaLive } from "../../types"; import type { KeyboardMovementConstraint } from "../use-draggable"; import type { vec } from "mafs"; type Params = { point: vec.Vector2; ariaDescribedBy?: string; ariaLabel?: string; ariaLive?: AriaLive; color?: string | undefined; constrain?: KeyboardMovementConstraint; cursor?: CSSCursor | undefined; forwardedRef?: React.ForwardedRef | undefined; /** * Represents where this point stands in the overall point sequence. * This is used to provide screen readers with context about the point. * Example: sequenceNumber={1} ==> "Point 1 at x comma y" * * Note: This number is 1-indexed, and should restart from 1 for each * interactive figure on the graph. */ sequenceNumber?: number; onMove?: ((newPoint: vec.Vector2) => unknown) | undefined; onDragEnd?: (() => unknown) | undefined; onClick?: (() => unknown) | undefined; onFocus?: ((event: React.FocusEvent) => unknown) | undefined; onBlur?: ((event: React.FocusEvent) => unknown) | undefined; }; type Return = { focusableHandle: React.ReactNode; visiblePoint: React.ReactNode; focusableHandleRef: React.RefObject; visiblePointRef: React.RefObject; }; export declare function useControlPoint(params: Params): Return; export {};