/**
* @param {object} cfg
* @param {HTMLElement} cfg.zona Dónde se escucha el gesto y se captura el puntero.
* @param {HTMLElement[]} [cfg.mueve] Qué se traslada. Por defecto, la propia `zona`.
* @param {HTMLElement} [cfg.overlay] Se desvanece con el avance del arrastre.
* @param {number} cfg.umbral px de recorrido para que cuente como descarte.
* @param {() => boolean} cfg.estaAbierto
* @param {(gesto: { dx: number, dy: number, dist: number }) => void} cfg.alDescartar
* @returns {() => void} soltar los listeners
*/
export function activarGesto({ zona, mueve, overlay, umbral, estaAbierto, alDescartar }: {
zona: HTMLElement;
mueve?: HTMLElement[] | undefined;
overlay?: HTMLElement | undefined;
umbral: number;
estaAbierto: () => boolean;
alDescartar: (gesto: {
dx: number;
dy: number;
dist: number;
}) => void;
}): () => void;