import { Point } from "./FXLCoordinator";
import { FXLFramePoolManager } from "./FXLFramePoolManager";
export interface PanTracker {
    startX: number;
    endX: number;
    overscrollX: number;
    overscrollY: number;
    startY: number;
    letItGo: boolean;
    preventClick: boolean;
    translateX: number;
    translateY: number;
    touchID: number;
}
export interface PinchTracker {
    startDistance: number;
    startScale: number;
    target: Point;
    startTranslate: Point;
    touchN: number;
}
export interface Zoomer {
    scale: number;
    translate: {
        X: number;
        Y: number;
    };
}
export declare class FXLPeripherals {
    private readonly manager;
    private readonly coordinator;
    dragState: number;
    private minimumMoved;
    pan: PanTracker;
    private pinch;
    private _scale;
    get scale(): number;
    private scaleDebouncer;
    set scale(value: number);
    private frameBounds;
    private debugger;
    constructor(manager: FXLFramePoolManager, debug?: boolean);
    private readonly btouchstartHandler;
    private readonly btouchendHandler;
    private readonly btouchmoveHandler;
    private readonly bdblclickHandler;
    private readonly bmousedownHandler;
    private readonly bmouseupHandler;
    private readonly bmousemoveHandler;
    /**
     * Attaches listeners to required events.
     */
    attachEvents(): void;
    /**
     * Clear drag after touchend and mouseup event
     */
    private clearPan;
    clearPinch(): void;
    observe(item: EventTarget): void;
    clickHandler(_: MouseEvent): void;
    /**
     * touchstart event handler
     */
    touchstartHandler(e: TouchEvent): void;
    private startTouch;
    /**
     * touchend event handler
     */
    touchendHandler(e: TouchEvent): void;
    private moveFrame;
    /**
     * touchmove event handler
     */
    touchmoveHandler(e: TouchEvent): void;
    private dtimer;
    private pdblclick;
    private disableDblClick;
    dblclickHandler(_: MouseEvent): void;
    get isScaled(): boolean;
    private addTouch;
    /**
     * mousedown event handler
     */
    mousedownHandler(e: MouseEvent): void;
    /**
     * mouseup event handler
     */
    mouseupHandler(e: MouseEvent): void;
    /**
     * mousemove event handler
     */
    mousemoveHandler(e: MouseEvent): void;
    /**
     * Recalculate drag/swipe event and reposition the frame of a slider
     */
    private updateAfterDrag;
}
