import '../../../globals.js';
/**
 * Options used by many drag listeners in scenery. At this time, that includes DragListener and KeyboardDragListener.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 * @author Michael Kauzmann (PhET Interactive Simulations)
 * @author Jesse Greenberg (PhET Interactive Simulations)
 */
import TProperty from '../../../axon/js/TProperty.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import Bounds2 from '../../../dot/js/Bounds2.js';
import Transform3 from '../../../dot/js/Transform3.js';
import Vector2 from '../../../dot/js/Vector2.js';
import { SceneryListenerCallback, SceneryListenerNullableCallback } from '../imports.js';
type MapPosition = (point: Vector2) => Vector2;
export type AllDragListenerOptions<Listener, DOMEvent extends Event> = {
    start?: SceneryListenerCallback<Listener, DOMEvent> | null;
    drag?: SceneryListenerCallback<Listener, DOMEvent> | null;
    end?: SceneryListenerNullableCallback<Listener, DOMEvent> | null;
    positionProperty?: Pick<TProperty<Vector2>, 'value'> | null;
    transform?: Transform3 | TReadOnlyProperty<Transform3> | null;
    dragBoundsProperty?: TReadOnlyProperty<Bounds2 | null> | null;
    mapPosition?: null | MapPosition;
    translateNode?: boolean;
};
export {};
//# sourceMappingURL=AllDragListenerOptions.d.ts.map