import type { CSSProperties, ElementType, PropsWithChildren } from 'react';
export declare const useDragAndDropUploadContext: () => {
    subscribeToDrop: ((fn: (files: File[]) => void) => () => void) | null;
};
/**
 * @private This hook should be used only once directly in the `MessageComposerProvider` to
 * register `uploadNewFiles` functions of the rendered message composers. Each `MessageComposer`
 * will then be notified when the drop event occurs from within the `WithDragAndDropUpload`
 * component.
 */
export declare const useRegisterDropHandlers: () => void;
/**
 * Wrapper to replace now deprecated `Channel.dragAndDropWindow` option.
 *
 * @example
 * ```tsx
 * <Channel>
 *  <WithDragAndDropUpload component="section" className="message-list-dnd-wrapper">
 *    <Window>
 *      <MessageList />
 *      <MessageComposer />
 *    </Window>
 *  </WithDragAndDropUpload>
 *  <Thread />
 * <Channel>
 * ```
 */
export declare const WithDragAndDropUpload: ({ children, className, component: Component, style, }: PropsWithChildren<{
    acceptedFiles?: string[];
    /**
     * @description An element to render as a wrapper onto which drag & drop functionality will be applied.
     * @default 'div'
     */
    component?: ElementType;
    className?: string;
    style?: CSSProperties;
}>) => import("react/jsx-runtime").JSX.Element;
export type FileDragAndDropContentProps = {
    isDragRejected: boolean;
};
export declare const FileDragAndDropContent: ({ isDragRejected, }: FileDragAndDropContentProps) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=WithDragAndDropUpload.d.ts.map