import type { XyUploadFile } from "../core"; import type { XySemanticClassNames, XySemanticStyles } from "../core"; export interface XyUploadRequestOptions { action?: string; file: File; filename: string; headers?: Record; method?: string; onError: (error: Error) => void; onProgress: (percent: number) => void; onSuccess: (response?: unknown) => void; withCredentials?: boolean; } export type XyUploadRequest = (options: XyUploadRequestOptions) => Promise | { abort?: () => void; } | void; export type XyBeforeUpload = (file: File, files: File[]) => boolean | File | Promise; export interface XyUploadChangeInfo { file: XyUploadFile; fileList: XyUploadFile[]; } export type XyUploadSemanticDom = "actions" | "error" | "input" | "item" | "list" | "name" | "progress" | "root" | "thumb" | "trigger"; export interface XyUploadSemanticProps { canAdd: boolean; disabled: boolean; drag: boolean; hasFiles: boolean; listType: string; } export type XyUploadClassNames = XySemanticClassNames; export type XyUploadStyles = XySemanticStyles;