#ifndef ASH_PUBLIC_CPP_ASSISTANT_ASSISTANT_SETUP_H_
#define ASH_PUBLIC_CPP_ASSISTANT_ASSISTANT_SETUP_H_
#include "ash/public/cpp/ash_public_export.h"
#include "base/functional/callback_forward.h"
namespace ash {
enum class ASH_PUBLIC_EXPORT FlowType {
kConsentFlow,
kSpeakerIdEnrollment,
kSpeakerIdRetrain,
};
class ASH_PUBLIC_EXPORT AssistantSetup {
public:
static AssistantSetup* GetInstance();
AssistantSetup(const AssistantSetup&) = delete;
AssistantSetup& operator=(const AssistantSetup&) = delete;
using StartAssistantOptInFlowCallback = base::OnceCallback<void(bool)>;
virtual void StartAssistantOptInFlow(
FlowType type,
StartAssistantOptInFlowCallback on_completed) = 0;
virtual bool BounceOptInWindowIfActive() = 0;
protected:
AssistantSetup();
virtual ~AssistantSetup();
};
}
#endif