#pragma once

#include "esphome/core/defines.h"

#include "esphome/components/button/button.h"
#include "esphome/core/component.h"

namespace esphome::factory_reset {

class FactoryResetButton final : public button::Button, public Component {
 public:
  void dump_config() override;
#ifdef USE_OPENTHREAD
  static void factory_reset_callback();
#endif

 protected:
  void press_action() override;
};

}  // namespace esphome::factory_reset
