/** @packageDocumentation
 * @module Cursor
 */
import type { XAndY } from "@itwin/core-geometry";
import { RelativePosition, UiEvent } from "@itwin/appui-abstract";
/** Enum for Cursor Direction parts
 *  @public
 */
export declare enum CursorDirectionParts {
    Top = 4096,
    Left = 256,
    Right = 16,
    Bottom = 1
}
/** Enum for Cursor Direction
 * @public
 */
export declare enum CursorDirection {
    None = 0,
    Top = 4096,
    Left = 256,
    Right = 16,
    Bottom = 1,
    TopLeft = 4352,
    TopRight = 4112,
    BottomLeft = 257,
    BottomRight = 17
}
/** Cursor Updated Event Args interface.
 * @public
 * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.
 */
export interface CursorUpdatedEventArgs {
    oldPt: XAndY;
    newPt: XAndY;
    direction: CursorDirection;
}
/** Cursor Updated Event class.
 * @public
 * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.
 */
export declare class CursorUpdatedEvent extends UiEvent<CursorUpdatedEventArgs> {
}
/** Cursor Information class
 * @public
 */
export declare class CursorInformation {
    private static _cursorPosition;
    private static _cursorDirection;
    private static _cursorDirections;
    /** The cursor position. */
    static get cursorPosition(): XAndY;
    static set cursorPosition(pt: XAndY);
    /** Gets the cursor X position. */
    static get cursorX(): number;
    /** Gets the cursor Y position. */
    static get cursorY(): number;
    /** Gets the general cursor movement direction. */
    static get cursorDirection(): CursorDirection;
    /** Gets the [[CursorUpdatedEvent]]. */
    static readonly onCursorUpdatedEvent: CursorUpdatedEvent;
    /** Handles the mouse movement.  Sets the cursor position and direction and emits onCursorUpdatedEvent. */
    static handleMouseMove(point: XAndY): void;
    private static _determineMostFrequentDirection;
    private static _mostFrequent;
    private static _determineCursorDirection;
    /** Gets the relative position based on the cursor direction. */
    static getRelativePositionFromCursorDirection(cursorDirection: CursorDirection): RelativePosition;
    /** @internal - for testing */
    static clearCursorDirections(): void;
}
//# sourceMappingURL=CursorInformation.d.ts.map