import type { TemplateResult } from "lit"; import { XmField } from "../field/index.js"; import "../primitives/index.js"; /** * @fires change - Fired on commit with the new value in `detail`. */ export declare class XmFileInput extends XmField { static styles: CSSStyleSheet[]; /** Native accept filter (e.g. ".yml,.json,image/*"). */ accept: string; /** Allow selecting more than one file. */ multiple: boolean; private _files; private _dragActive; private _native; /** Public read contract (AD-6a) — the selected files. */ get files(): File[]; private _setFiles; private _openPicker; private _onNativeChange; private _onKeydown; private _onDragOver; private _onDragLeave; /** Does a dropped file satisfy the `accept` list? Mirrors the native picker so drag-drop and click-to-pick enforce the same filter. */ private _accepts; private _onDrop; private _removeFile; render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { "xm-file-input": XmFileInput; } }