// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "llapi/Global.h"
#include "Json.hpp"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class IFileChunkUploader {

#define AFTER_EXTRA

#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_IFILECHUNKUPLOADER
public:
    class IFileChunkUploader& operator=(class IFileChunkUploader const &) = delete;
    IFileChunkUploader(class IFileChunkUploader const &) = delete;
    IFileChunkUploader() = delete;
#endif

public:
    /*0*/ virtual ~IFileChunkUploader();
    /*1*/ virtual void __unk_vfn_1();
    /*2*/ virtual void initFileUploader(std::string const &, struct FileInfo const &, int, class Json::Value const &, class std::function<void (bool)>) = 0;
    /*3*/ virtual void getServerMissingChunks(struct FileInfo const &, class std::function<void (std::vector<struct FileChunkInfo>)>) const;
    /*4*/ virtual void __unk_vfn_4();
    /*5*/ virtual void uploadChunk(struct FileInfo const &, struct FileChunkInfo const &, std::vector<unsigned char> const &, class std::function<void (bool)>);
    /*6*/ virtual void uploadStream(struct FileInfo const &, unsigned __int64, std::string const &, class std::function<bool (unsigned __int64 &, std::vector<unsigned char> &)>, class std::function<void (enum IFileChunkUploader::UploadStreamResult)>);
    /*7*/ virtual bool canCancelUpload(struct FileInfo const &) const = 0;
    /*8*/ virtual void __unk_vfn_8() = 0;
    /*9*/ virtual float getUploadProgress(struct FileInfo const &) const = 0;
    /*10*/ virtual struct FileChunkInfo getChunkInfo(struct FileInfo const &, int) const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_IFILECHUNKUPLOADER
    MCVAPI void confirmChunkReceived(struct FileInfo const &, struct FileChunkInfo const &);
    MCVAPI void update();
#endif

};