import { LitElement } from "lit"; import type { TemplateResult } from "lit"; export type ValidationCode = "size" | "ext" | "parse" | "shape" | "empty" | "read"; export type ValidationState = "idle" | "dragging" | "valid" | "invalid" | "error-no-file"; export interface ValidationFile { ext: string; name: string; summary?: string; } export interface ValidationError { code: ValidationCode; fileName?: string; path?: string; rule?: string; message: string; } export interface ValidationPreset extends ValidationError { file?: ValidationFile; } export declare const VALIDATION_TITLE: Record; export declare const VALIDATION_PRESETS: Record; /** * @fires file-pick - Fired when the user requests to pick a file. * @fires file-drop - Fired when a file is dropped (`detail.file`). * @fires copy-path - Fired when the file path is copied (`detail.path`). * @fires error-dismiss - Fired when the validation error is dismissed. */ export declare class XmFileValidationBlock extends LitElement { state: ValidationState; file: ValidationFile | null; error: ValidationError | null; hint: string; fileCsv: string; errorJson: string; private _copyState; createRenderRoot(): HTMLElement | DocumentFragment; connectedCallback(): void; private _emit; private _renderDropRow; private _renderFileRow; private _onCopyPath; private _onDismiss; private _renderErrorRow; render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { "xm-file-validation-block": XmFileValidationBlock; } }