import React from 'react'; import PropTypes from 'prop-types'; import * as reducers from './DraggableList.reducers'; import { StandardProps, Overwrite } from '../../util/component-types'; export interface IDraggableListItemProps extends StandardProps, React.DetailedHTMLProps, HTMLDivElement> { } interface IDraggableListPropsRaw extends StandardProps { /** Render a drag handle on list items */ hasDragHandle?: boolean; /** Index of the item the drag was started on */ dragIndex?: number; /** Index of the item the dragged item is hovered over */ dragOverIndex?: number; /** Called when the user starts to drag an item. Signature: \`(dragIndex, { event, props }) => {}\` */ onDragStart?: (dragIndex: number, { event, props }: { event: React.DragEvent; props: IDraggableListProps; }) => void; /** Called when the user stops to dragging an item. Signature: \`({ event, props }) => {}\` */ onDragEnd?: ({ event, props, }: { event: React.DragEvent; props: IDraggableListProps; }) => void; /** Called when the user drags an item over another item. Signature: \`(dragOverIndex, { event, props }) => {}\` */ onDragOver?: (dragOverIndex: number, { event, props }: { event: React.DragEvent; props: IDraggableListProps; }) => void; /** Called when the user drops an item in the list Signature: \`({oldIndex, newIndex}, { event, props }) => {}\` */ onDrop?: ({ oldIndex, newIndex }: { newIndex: number; oldIndex: number; }, { event, props }: { event: React.DragEvent; props: IDraggableListProps; }) => void; /** Props for DraggableList.Item */ Item?: React.ReactNode & { props: IDraggableListItemProps; }; } export interface IDraggableListProps extends Overwrite, HTMLElement>, IDraggableListPropsRaw> { } declare const DraggableList: { (props: IDraggableListProps): JSX.Element; Item: { (_props: IDraggableListItemProps): null; displayName: string; peek: { description: string; }; propName: string; propTypes: { children: PropTypes.Requireable; }; }; displayName: string; peek: { description: string; categories: string[]; }; propTypes: { /** Appended to the component-specific class names set on the root element. */ className: PropTypes.Requireable; /** Passed through to the root element. */ style: PropTypes.Requireable; /** Render a drag handle on list items */ hasDragHandle: PropTypes.Requireable; /** Index of the item the drag was started on */ dragIndex: PropTypes.Requireable; /** Index of the item the dragged item is hovered over */ dragOverIndex: PropTypes.Requireable; /** Called when the user starts to drag an item. Signature: \`(dragIndex, { event, props }) => {}\` */ onDragStart: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user stops to dragging an item. Signature: \`({ event, props }) => {}\` */ onDragEnd: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user drags an item over another item. Signature: \`(dragOverIndex, { event, props }) => {}\` */ onDragOver: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user drops an item in the list Signature: \`({oldIndex, newIndex}, { event, props }) => {}\` */ onDrop: PropTypes.Requireable<(...args: any[]) => any>; /** Props for DraggableList.Item */ Item: PropTypes.Requireable; }; }; declare const _default: { (props: IDraggableListProps): JSX.Element; Item: { (_props: IDraggableListItemProps): null; displayName: string; peek: { description: string; }; propName: string; propTypes: { children: PropTypes.Requireable; }; }; displayName: string; peek: { description: string; categories: string[]; }; propTypes: { /** Appended to the component-specific class names set on the root element. */ className: PropTypes.Requireable; /** Passed through to the root element. */ style: PropTypes.Requireable; /** Render a drag handle on list items */ hasDragHandle: PropTypes.Requireable; /** Index of the item the drag was started on */ dragIndex: PropTypes.Requireable; /** Index of the item the dragged item is hovered over */ dragOverIndex: PropTypes.Requireable; /** Called when the user starts to drag an item. Signature: \`(dragIndex, { event, props }) => {}\` */ onDragStart: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user stops to dragging an item. Signature: \`({ event, props }) => {}\` */ onDragEnd: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user drags an item over another item. Signature: \`(dragOverIndex, { event, props }) => {}\` */ onDragOver: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user drops an item in the list Signature: \`({oldIndex, newIndex}, { event, props }) => {}\` */ onDrop: PropTypes.Requireable<(...args: any[]) => any>; /** Props for DraggableList.Item */ Item: PropTypes.Requireable; }; } & import("../../util/state-management").IHybridComponent; export default _default; export { DraggableList as DraggableListDumb }; //# sourceMappingURL=DraggableList.d.ts.map