import type{ReactiveControllerHost}from'lit'; /** Drag-session preview/outcome state. `'default'` is the resting state; `'accept'`/`'reject'` * preview what a drop would do, driven by {@link DropSessionCallbacks.previewRejects}. */ export type DropSessionState='default'|'accept'|'reject';export interface DropSessionHost extends ReactiveControllerHost{readonly isConnected:boolean;}export interface DropSessionCallbacks{ /** Whether the host currently refuses drag/drop input (own or fieldset-cascaded disabled). */ isDisabled():boolean; /** Preview classification for a dragenter/dragover payload: item-shaped values exposing only * `.kind`/`.type` (never real `File` data -- sizes and names aren't available pre-drop). Return * `true` to preview the session as a reject. */ previewRejects(items:readonly DataTransferItem[]):boolean; /** Invoked every time this controller sets `state` (including a same-value reset), mirroring * the exact call sites the original implementation this was extracted from used to sync * `CustomStateSet`/announcements from -- never coalesced or deduplicated. */ onStateChange():void;}export type DroppedFolderReadResult={status:'complete';files:File[];}|{status:'cancelled';}|{status:'limit';name:string;}|{status:'error';name:string;};export interface DropSessionBeginResult{ /** Cancellation token for this drop; pass to {@link DropSessionController.readFolders} and * {@link DropSessionController.isCurrent}. */ readonly token:number; /** Files already available synchronously from `DataTransfer.files`. */ readonly files:File[]; /** Top-level directory entries found among `DataTransfer.items`, needing an async walk. */ readonly folders:FileSystemEntry[]; /** `true` when the dropped item count exceeded the traversal budget before any entry was read. */ readonly overLimit:boolean;} /** Reads a `DataTransfer.files`/`.items`-shaped clipboard or drop payload into a plain `File[]`, * ignoring anything that isn't a real `File`. Shared by every drop/paste-consuming component so * a hostile or partial `FileList`-alike can't smuggle a non-`File` value past `isAllowed()`. */ export declare function readFileList(list:FileList|null|undefined):File[];