import VisibleMixin from "../display/core/mixins/VisibleMixin";
import { Point3dType } from "../utils/isPoint";
import IAppendable from "./IAppendable";
import { ExtractProps } from "./utils/extractProps";
import Nullable from "./utils/Nullable";
export declare class LingoMouseEvent {
    x: number;
    y: number;
    clientX: number;
    clientY: number;
    xNorm: number;
    yNorm: number;
    point: Point3dType;
    normal: Point3dType;
    distance: number;
    target: VisibleMixin | undefined;
    constructor(x: number, y: number, clientX: number, clientY: number, xNorm: number, yNorm: number, point: Point3dType, normal: Point3dType, distance: number, target: VisibleMixin | undefined);
}
export declare const lingoMouseEvent: LingoMouseEvent;
export declare class SimpleMouseEvent {
    x: number;
    y: number;
    clientX: number;
    clientY: number;
    constructor(x: number, y: number, clientX: number, clientY: number);
}
export default interface IMouse extends IAppendable {
    onClick: Nullable<(e: SimpleMouseEvent) => void>;
    onRightClick: Nullable<(e: SimpleMouseEvent) => void>;
    onMouseMove: Nullable<(e: SimpleMouseEvent) => void>;
    onMouseDown: Nullable<(e: SimpleMouseEvent) => void>;
    onMouseUp: Nullable<(e: SimpleMouseEvent) => void>;
    onMousePress: Nullable<(e: SimpleMouseEvent) => void>;
}
export declare const mouseSchema: Required<ExtractProps<IMouse>>;
export declare const mouseDefaults: Partial<import("./utils/Defaults").default<IMouse>>;
