import { UploadProps } from 'antd';
import { UploadFile } from 'antd/lib/upload/interface';
import { IServerImageForm, IUploadImage } from '../../types';
export interface BaseImageUploadProps extends UploadProps {
    labelText: string;
    loadingErrorText: string;
    emptyText: string;
    downloadText: string;
    serverImages: IServerImageForm[];
    updatedImages?: IUploadImage[];
    language: string;
    onUpdateData: (data: IUploadImage) => void;
    onDeleteImage: (uid: string) => void;
    onSuccessUpload: (newFile: {
        tempName: string;
        uid: string;
    }) => void;
    onUpdateTempImage: OnUpdateTempImageType;
    onImagesOrder?: (data: string[]) => void;
}
export type OnUpdateTempImageType = (data: FormData) => Promise<OnUpdateBaseImageUploadTempImageType>;
export type OnUpdateBaseImageUploadTempImageType = {
    status?: number;
    data: {
        data: {
            tempFiles: string[];
        };
    };
    error?: unknown;
};
export interface ItemProps {
    labelText: string;
    loadingErrorText: string;
    emptyText: string;
    file: IUploadFile;
    language: string;
    maxCount: number | undefined;
    errorsUid: string[];
    disabled: boolean;
    isLoading: boolean;
    updatedImages?: IUploadImage[];
    actions: {
        download: () => void;
        preview: () => void;
        remove: () => void;
    };
    onUpdateData: (data: IUploadImage) => void;
    onDeleteImage: (uid: string) => void;
    onDeleteError: (uid: string) => void;
}
export interface IUploadFile extends UploadFile {
    altRU?: string;
    altEN?: string;
    altAR?: string;
}
