#ifndef ASH_PUBLIC_CPP_SCANNER_SCANNER_PROFILE_SCOPED_DELEGATE_H_
#define ASH_PUBLIC_CPP_SCANNER_SCANNER_PROFILE_SCOPED_DELEGATE_H_
#include "ash/public/cpp/ash_public_export.h"
#include "base/functional/callback.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/scoped_refptr.h"
#include "chromeos/ash/components/specialized_features/feature_access_checker.h"
#include "components/manta/proto/scanner.pb.h"
#include "components/manta/scanner_provider.h"
namespace drive {
class DriveServiceInterface;
}
namespace google_apis {
class RequestSender;
}
namespace ash {
class ASH_PUBLIC_EXPORT ScannerProfileScopedDelegate {
public:
virtual ~ScannerProfileScopedDelegate() = default;
virtual specialized_features::FeatureAccessFailureSet CheckFeatureAccess()
const = 0;
virtual void FetchActionsForImage(
scoped_refptr<base::RefCountedMemory> jpeg_bytes,
manta::ScannerProvider::ScannerProtoResponseCallback callback) = 0;
virtual void FetchActionDetailsForImage(
scoped_refptr<base::RefCountedMemory> jpeg_bytes,
manta::proto::ScannerAction selected_action,
manta::ScannerProvider::ScannerProtoResponseCallback callback) = 0;
virtual drive::DriveServiceInterface* GetDriveService() = 0;
virtual google_apis::RequestSender* GetGoogleApisRequestSender() = 0;
};
}
#endif