# Installation
> `npm install --save @types/dragula`

# Summary
This package contains type definitions for dragula (http://bevacqua.github.io/dragula/).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dragula.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dragula/index.d.ts)
````ts
declare const dragula: dragula.Dragula;

export = dragula;
export as namespace dragula;

declare namespace dragula {
    interface DragulaOptions {
        containers?: Element[] | undefined;
        isContainer?: ((el?: Element) => boolean) | undefined;
        moves?: ((el?: Element, container?: Element, handle?: Element, sibling?: Element) => boolean) | undefined;
        accepts?: ((el?: Element, target?: Element, source?: Element, sibling?: Element) => boolean) | undefined;
        invalid?: ((el?: Element, target?: Element) => boolean) | undefined;
        direction?: string | undefined;
        copy?: ((el: Element, source: Element) => boolean) | boolean | undefined;
        copySortSource?: boolean | undefined;
        revertOnSpill?: boolean | undefined;
        removeOnSpill?: boolean | undefined;
        delay?: boolean | number | undefined;
        mirrorContainer?: Element | undefined;
        ignoreInputTextSelection?: boolean | undefined;
        slideFactorX?: number | undefined;
        slideFactorY?: number | undefined;
    }

    interface Drake {
        containers: Element[];
        dragging: boolean;
        start(item: Element): void;
        end(): void;
        cancel(revert?: boolean): void;
        canMove(item: Element): boolean;
        remove(): void;
        on(event: "drag", listener: (el: Element, source: Element) => void): Drake;
        on(event: "dragend", listener: (el: Element) => void): Drake;
        on(event: "drop", listener: (el: Element, target: Element, source: Element, sibling: Element) => void): Drake;
        on(
            event: "cancel" | "remove" | "shadow" | "over" | "out",
            listener: (el: Element, container: Element, source: Element) => void,
        ): Drake;
        on(event: "cloned", listener: (clone: Element, original: Element, type: "mirror" | "copy") => void): Drake;
        destroy(): void;
    }

    interface Dragula {
        (containers: Element, options: DragulaOptions): Drake;
        (containers: Element[], options?: DragulaOptions): Drake;
        (options?: DragulaOptions): Drake;
    }
}

````

### Additional Details
 * Last updated: Fri, 19 Apr 2024 16:36:56 GMT
 * Dependencies: none

# Credits
These definitions were written by [Paul Welter](https://github.com/pwelter34), [Yang He](https://github.com/abruzzihraig), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).
