import MeshAppendable from "../display/core/MeshAppendable";
import { Point3dType } from "../utils/isPoint";
import { LingoMouseEvent } from "./IMouse";
import { ExtractProps } from "./utils/extractProps";
import Nullable from "./utils/Nullable";
export declare class HitEvent {
    target: MeshAppendable;
    point?: Point3dType | undefined;
    normal?: Point3dType | undefined;
    constructor(target: MeshAppendable, point?: Point3dType | undefined, normal?: Point3dType | undefined);
}
export declare const hitEvent: HitEvent;
export default interface IVisible {
    bloom: Nullable<boolean>;
    outline: Nullable<boolean>;
    visible: Nullable<boolean>;
    reflectionVisible: Nullable<boolean>;
    castShadow: Nullable<boolean>;
    onClick: Nullable<(e: LingoMouseEvent) => void>;
    onMouseDown: Nullable<(e: LingoMouseEvent) => void>;
    onMouseUp: Nullable<(e: LingoMouseEvent) => void>;
    onMouseOver: Nullable<(e: LingoMouseEvent) => void>;
    onMouseOut: Nullable<(e: LingoMouseEvent) => void>;
    onMouseMove: Nullable<(e: LingoMouseEvent) => void>;
    onHit: Nullable<(e: HitEvent) => void>;
    onHitStart: Nullable<(e: HitEvent) => void>;
    onHitEnd: Nullable<(e: HitEvent) => void>;
    hitTarget: Nullable<string | Array<string>>;
}
export declare const visibleSchema: Required<ExtractProps<IVisible>>;
export declare const visibleDefaults: Partial<import("./utils/Defaults").default<IVisible>>;
