import type { State } from './state';
import { Key, Piece, NumberPair, PieceNode, MouchEvent } from './types';
export interface DragCurrent {
    orig: Key;
    piece: Piece;
    origPos: NumberPair;
    pos: NumberPair;
    started: boolean;
    element: PieceNode | (() => PieceNode | undefined);
    newPiece?: boolean;
    force?: boolean;
    previouslySelected?: Key;
    originTarget: EventTarget | null;
    keyHasChanged: boolean;
}
export declare function start(s: State, e: MouchEvent): void;
export declare function dragNewPiece(s: State, piece: Piece, e: MouchEvent, force?: boolean): void;
export declare function move(s: State, e: MouchEvent): void;
export declare function end(s: State, e: MouchEvent): void;
export declare function cancel(s: State): void;
