import { SceneEvent } from './sceneEvent';
export declare enum CoordinateType {
    /** 屏幕到画布 */
    ScreenToCanvas = 1,
    /** 屏幕到场景 */
    ScreenToScene = 2,
    /** 画布到场景 */
    CanvasToScene = 3,
    /** 画布到屏幕 */
    CanvasToScreen = 4,
    /** 场景到屏幕 */
    SceneToScreen = 5,
    /** 场景到画布 */
    SceneToCanvas = 6
}
export interface ViewEntity {
    id: string;
    type: symbol;
    [propKey: string]: any;
}
export interface InteractiveConfig {
    isClickable: boolean;
    isDraggable: boolean;
    isHoverable: boolean;
    isPinchable: boolean;
    isRotatable: boolean;
    isPressable: boolean;
    onClick: (event: SceneEvent) => void;
    onDBClick: (event: SceneEvent) => void;
    onRightClick: (event: SceneEvent) => void;
    onDragStart: (event: SceneEvent) => void;
    onDragMove: (event: SceneEvent) => void;
    onDragEnd: (event: SceneEvent) => void;
    onPinchStart: (event: SceneEvent) => void;
    onPinch: (event: SceneEvent) => void;
    onPinchEnd: (event: SceneEvent) => void;
    onRotateStart: (event: SceneEvent) => void;
    onRotate: (event: SceneEvent) => void;
    onRotateEnd: (event: SceneEvent) => void;
    onPress: (event: SceneEvent) => void;
    onPressUp: (event: SceneEvent) => void;
    onHoverIn: (event: SceneEvent) => void;
    onHoverOut: (event: SceneEvent) => void;
    getViewEntity: () => Partial<ViewEntity>;
}
export interface CanvasHandlers {
    /** 没点击到任何目标时的回调 */
    onClick: (event: SceneEvent) => void;
    onDBClick: (event: SceneEvent) => void;
    onRightClick: (event: SceneEvent) => void;
    onDragStart: (event: SceneEvent) => void;
    onDragMove: (event: SceneEvent) => void;
    onDragEnd: (event: SceneEvent) => void;
    onPinchStart: (event: SceneEvent) => void;
    onPinch: (event: SceneEvent) => void;
    onPinchEnd: (event: SceneEvent) => void;
    onRotateStart: (event: SceneEvent) => void;
    onRotate: (event: SceneEvent) => void;
    onRotateEnd: (event: SceneEvent) => void;
    onPress: (event: SceneEvent) => void;
    onPressUp: (event: SceneEvent) => void;
    onPointerMove: (event: SceneEvent) => void;
    onPointerUp: (event: SceneEvent) => void;
    onWheel: (event: SceneEvent) => void;
}
export type InteractiveType = 'isClickable' | 'isDraggable' | 'isHoverable' | 'isPinchable' | 'isRotatable' | 'isPressable';
export interface ViewportInfo {
    x: number;
    y: number;
    width: number;
    height: number;
    visible: boolean;
    resolution?: number;
}
interface ICustomEvent {
    clientX: number;
    clientY: number;
    [key: string]: any;
}
export type NativeEventSet = PointerEvent | WheelEvent | Touch | ICustomEvent;
export {};
