import { Ref } from "@cfcs/core"; import { Axis } from "./AxisManager"; import { MouseEventInput } from "./eventInput/MouseEventInput"; import { TouchEventInput } from "./eventInput/TouchEventInput"; import { PointerEventInput } from "./eventInput/PointerEventInput"; import { TouchMouseEventInput } from "./eventInput/TouchMouseEventInput"; import { InputType } from "./inputType/InputType"; import { AXES_METHODS } from "./const"; import Axes from "./Axes"; export declare type ObjectInterface = Record; export declare type InputEventType = PointerEvent | MouseEvent | TouchEvent; export declare type ElementType = string | HTMLElement | Ref; export declare type ActiveEvent = MouseEventInput | TouchEventInput | TouchMouseEventInput | PointerEventInput; export interface AxesEvents { hold: OnHold; change: OnChange; release: OnRelease; animationStart: OnAnimationStart; animationEnd: OnAnimationEnd; finish: OnFinish; } export interface AxesReactiveState { holding: boolean; [key: string]: any; } export declare type AxesMethods = { [key in typeof AXES_METHODS[number]]: Axes[key]; }; export interface AnimationParam { depaPos: Axis; destPos: Axis; duration: number; delta: Axis; isTrusted?: boolean; stop?: () => void; setTo?: (destPos?: Axis, duration?: number) => { destPos: Axis; duration: number; }; done?: () => void; startTime?: number; inputEvent?: any; input?: InputType; } export interface UpdateAnimationOption { destPos?: Axis; duration?: number; restart?: boolean; } export interface OnHold { pos: Record; input: InputType | null; inputEvent: any; isTrusted: boolean; } export interface OnAnimationStart { depaPos: Axis; destPos: Axis; duration: number; delta: Axis; isTrusted: boolean; startTime?: number; inputEvent?: any; input?: InputType | null; setTo(destPos?: Axis, duration?: number): void; done(): void; stop(): void; } export interface OnChange { pos: Axis; delta: Axis; bounceRatio: Axis; holding: boolean; inputEvent: any; isTrusted: boolean; input: InputType | null; set(toPos?: Axis, userDuration?: number): void; stop(): void; } export interface OnRelease { depaPos: Axis; destPos: Axis; duration: number; delta: Axis; bounceRatio: Axis; isTrusted?: boolean; startTime?: number; inputEvent?: any; input?: InputType | null; setTo(destPos?: Axis, duration?: number): void; done(): void; } export interface OnAnimationEnd { isTrusted: boolean; } export interface OnFinish { isTrusted: boolean; } export interface ExtendedEvent { srcEvent: InputEventType; angle: number; scale: number; directionX: number; directionY: number; center: { x: number; y: number; }; deltaX: number; deltaY: number; offsetX: number; offsetY: number; velocityX: number; velocityY: number; preventSystemEvent: boolean; } export interface LatestInterval { timestamp: number; deltaX: number; deltaY: number; }