import { DROP_OPERATION } from './constants'; import { DirectoryDropItem, DragItem, DropItem, FileDropItem, DragTypes as IDragTypes, Key, RefObject, TextDropItem } from '@react-types/shared'; import { DroppableCollectionState } from 'react-stately/useDroppableCollectionState'; interface DroppableCollectionMap { id: string; ref: RefObject; } export declare const droppableCollectionMap: WeakMap; export declare const DIRECTORY_DRAG_TYPE: symbol; export declare function getDroppableCollectionId(state: DroppableCollectionState): string; export declare function getDroppableCollectionRef(state: DroppableCollectionState): RefObject; export declare function getTypes(items: DragItem[]): Set; export declare function useDragModality(): string; export declare function getDragModality(): string; export declare function writeToDataTransfer(dataTransfer: DataTransfer, items: DragItem[]): void; export declare class DragTypes implements IDragTypes { private types; private includesUnknownTypes; constructor(dataTransfer: DataTransfer); has(type: string | symbol): boolean; } export declare function readFromDataTransfer(dataTransfer: DataTransfer): DropItem[]; /** Returns whether a drop item contains text data. */ export declare function isTextDropItem(dropItem: DropItem): dropItem is TextDropItem; /** Returns whether a drop item is a file. */ export declare function isFileDropItem(dropItem: DropItem): dropItem is FileDropItem; /** Returns whether a drop item is a directory. */ export declare function isDirectoryDropItem(dropItem: DropItem): dropItem is DirectoryDropItem; export interface DnDState { /** A ref for the of the drag items in the current drag session if any. */ draggingCollectionRef?: RefObject; /** The set of currently dragged keys. */ draggingKeys: Set; /** A ref for the collection that is targeted for a drop operation, if any. */ dropCollectionRef?: RefObject; } export declare let globalDndState: DnDState; export declare function setDraggingCollectionRef(ref: RefObject): void; export declare function setDraggingKeys(keys: Set): void; export declare function setDropCollectionRef(ref?: RefObject): void; export declare function clearGlobalDnDState(): void; export declare function setGlobalDnDState(state: DnDState): void; export declare function isInternalDropOperation(ref?: RefObject): boolean; type DropEffect = 'none' | 'copy' | 'link' | 'move'; export declare let globalDropEffect: DropEffect | undefined; export declare function setGlobalDropEffect(dropEffect: DropEffect | undefined): void; export declare let globalAllowedDropOperations: DROP_OPERATION; export declare function setGlobalAllowedDropOperations(o: DROP_OPERATION): void; export {};