/**
 * Copyright (c) Cisco Systems, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */
import { LitElement, PropertyValues } from "lit";
import Sortable from "sortablejs";
export declare namespace Draggable {
    const ELEMENT_base: typeof LitElement & import("../../mixins/SlottedMixin").AnyConstructor<import("../../mixins/SlottedMixin").SlotableClass & import("../../mixins/SlottedMixin").SlotableInterface>;
    export class ELEMENT extends ELEMENT_base {
        delay: number;
        animation: number;
        handle: string;
        filter: string;
        easing: string;
        direction: "horizontal" | "vertical";
        group: Sortable.GroupOptions | null;
        draggableItems: string;
        ghostClass: string;
        chosenClass: string;
        dragClass: string;
        fallbackClass: string;
        swapThreshold: number;
        touchStartThreshold: number;
        forceFallback: boolean;
        sort: boolean;
        disabled: boolean;
        editable: boolean;
        draggableSlot: HTMLSlotElement;
        private sortableInstance;
        static get styles(): import("lit").CSSResult[];
        get slotElement(): HTMLSlotElement;
        private generateOptions;
        private initializeSortable;
        private dispatchDragEvent;
        handleOnChange: (event: Sortable.SortableEvent) => void;
        handleOnClone: (event: Sortable.SortableEvent) => void;
        handleOnUnchoose: (event: Sortable.SortableEvent) => void;
        handleOnRemove: (event: Sortable.SortableEvent) => void;
        handleOnAdd: (event: Sortable.SortableEvent) => void;
        handleOnChoose: (event: Sortable.SortableEvent) => void;
        handleOnEnd: (event: Sortable.SortableEvent) => void;
        handleOnMove: (this: unknown, ...args: any[]) => void;
        handleOnStart: (event: Sortable.SortableEvent) => void;
        private cleanupSortable;
        connectedCallback(): void;
        disconnectedCallback(): void;
        private setSortableOption;
        private updateSortableInstance;
        protected updated(changedProperties: PropertyValues): void;
        protected slottedChanged(): void;
        render(): import("lit-html").TemplateResult<1>;
    }
    export {};
}
declare global {
    interface HTMLElementTagNameMap {
        "md-draggable": Draggable.ELEMENT;
    }
}
