import { TNode, Value, Signal } from '@tempots/dom';
export type PageDropZoneOptions = {
    onChange: (files: File[], via: 'dragdrop' | 'click') => void;
    accept?: Value<string>;
    onDragContent?: (options: {
        files: Signal<File[]>;
    }) => TNode;
    content?: (options: {
        isDragging: Signal<boolean>;
        files: Signal<File[]>;
        selectFiles: () => void;
    }) => TNode;
    onInvalidSelection?: (files: File[]) => void;
    disabled?: Value<boolean>;
};
/**
 * Detects filesystem drag-and-drop events at the page/document level.
 *
 * This component listens for drag events at the document level and provides
 * reactive state about drag operations. It can optionally render an overlay
 * when files are being dragged over the page.
 *
 * @example
 * ```typescript
 * PageDropZone({
 *   onChange: (files) => console.log('Files dropped:', files),
 *   content: ({ isDragging }) =>
 *     html.div(
 *       attr.class('fixed inset-0 bg-black/50 flex items-center justify-center'),
 *       html.div('Drop files here')
 *     )
 * })
 * ```
 */
export declare function PageDropZone({ onChange, accept, onDragContent, content, onInvalidSelection, disabled, }: PageDropZoneOptions): import("@tempots/dom").Renderable<import("@tempots/dom").DOMContext>;
