import React from 'react'; import { KeyMap } from '../model'; import { DroppableFilter } from './types/Filter'; import { KeyNavigationDirection } from './types/model'; export interface DroppableProps extends React.HTMLAttributes { /** * The name of the droppable, as an identifier */ name: TOrigin; /** * The name of the type of draggable accepted by the droppable. Items can be dragged between droppables that accept the same type of draggables. */ accept: string; /** * Map of all the keys to a display name of the key and a formatter and ordenator for the filter options */ keyMapping: KeyMap; /** * Array of keys currently present in this component */ keyState: Array; /** * Map of keys to the state of their filters */ /** * Object that contains the keys and it's filter options, * the filters chosen and a function that updates the chosen filters of a key */ filter?: DroppableFilter; /** * Function that updates the keyState of this component */ handleKeyUpdate: (values: Array) => void; /** * Function used to navigate a draggable between droppables using the directional arrows */ onKeyNav?: (direction: KeyNavigationDirection, origin: TOrigin, key?: keyof T) => boolean; } export interface DragItem { /** * Name of the item, as an identifier */ name: keyof T; /** * The type of droppable item can be dropped on */ type: string; /** * Name of the origin droppable of the item */ origin: string; } export declare function Droppable(props: DroppableProps): JSX.Element;