import * as React from 'react'; import { ComponentSync } from '../../core/ComponentSync.js'; import './TS_DragAndDrop.scss'; type DND_State = 'Idle' | 'Dragging' | 'Positive' | 'Negative' | 'PartialNegative'; export type DND_File = { file: File; accepted: boolean; }; export type Props_DragAndDrop = React.PropsWithChildren<{ id?: string; className?: string; validate: ((files: File[]) => DND_File[]); onChange: (acceptedFiles: File[], rejectedFiles: File[]) => void; renderer: React.ComponentType<{ acceptedFiles: File[]; rejectedFiles: File[]; }>; }>; type State = { dndState: DND_State; acceptedFiles: File[]; rejectedFiles: File[]; }; export declare class TS_DragAndDrop extends ComponentSync { static defaultProps: { renderer: (props: { acceptedFiles: File[]; rejectedFiles: File[]; }) => import("react/jsx-runtime").JSX.Element; }; private inputRef; private timers; protected deriveStateFromProps(nextProps: Props_DragAndDrop): State; componentWillUnmount(): void; onSelect: (e: React.ChangeEvent) => void; static extractContent: (ev: React.DragEvent) => File[]; extractPayload: (ev: React.DragEvent) => File[] | undefined; static validateFilesBySuffix: (fileExt: string | string[]) => (files: File[]) => DND_File[]; onDrop: (ev: React.DragEvent) => void; updateFileArray: (_files: File[]) => void; onDragEnter: (ev: React.DragEvent) => void; onDragOver: (ev: React.DragEvent) => void; onDragLeave: (ev: React.DragEvent) => void; static removeDragData: (ev: React.DragEvent) => void; render(): import("react/jsx-runtime").JSX.Element; private openFileChooser; } export {};