import { fileUploadStateStyles, fileUploadVariants } from "./constants";
import { type VariantProps } from "class-variance-authority";
export type FileItem = {
    file: File;
    status: "idle" | "uploading" | "upload_error" | "removing" | "remove_error";
};
export type FileListProps = {
    files: FileItem[];
    onFileRemove: (indexesOfFilesToRemove: number[]) => void;
    onRetryUpload?: (indexesOfFileToRetry: number) => void;
};
export type FileUploadProps = VariantProps<typeof fileUploadVariants> & FileListProps & {
    accept: string[];
    /** Callback when files change */
    onChange: (filesToAdd: File[]) => void;
    /** Maximum file size in bytes */
    maxSize: number;
    /** Maximum number of files */
    maxFiles: number;
    /** Disabled state */
    disabled?: boolean;
    /** Error message to display */
    errorMessage?: string;
    acceptedFileTypesText?: string;
};
export type FileUploadState = keyof typeof fileUploadStateStyles;
export type FileCategory = "image" | "audio" | "code" | "pdf" | "excel" | "zip" | "word" | "unknown";
export type FileInfoProps = {
    fileName: string;
    fileSize: number;
    status: FileItem["status"];
};
export type FileItemCallbacks = {
    onRemove: (index: number) => void;
    onRetry?: (index: number) => void;
};
export type FileItemRowProps = {
    fileItem: FileItem;
    index: number;
} & FileItemCallbacks;
export type FileActionsProps = {
    fileName: string;
    status: FileItem["status"];
    index: number;
} & FileItemCallbacks;
//# sourceMappingURL=types.d.ts.map