/** Which candidates a file field takes, how many, and what it refuses. */ export interface MdyFileCandidate { readonly name: string; readonly type: string; readonly size: number; } export interface MdyFileSelectionOptions { readonly accept?: string; readonly multiple: boolean; readonly maxFileSize?: number; readonly maxFiles?: number; } export interface MdyFileSelectionTransition { /** What the field holds: always a list, as `MDY_VALUE_CONTRACTS.file` declares. */ readonly value: readonly TFile[] | null | undefined; readonly accepted: readonly TFile[]; readonly rejected: readonly TFile[]; readonly touched: boolean; } /** Shared picker/drop policy. `undefined` means no accepted candidate and preserves the committed value. */ export declare function fileSelectionTransition(candidates: readonly TFile[], options: MdyFileSelectionOptions): MdyFileSelectionTransition; export declare function clearFileSelection(): MdyFileSelectionTransition;