#ifndef CHROME_BROWSER_EXTENSIONS_API_DOWNLOADS_DOWNLOADS_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_DOWNLOADS_DOWNLOADS_API_H_
#include <memory>
#include <set>
#include <string>
#include "base/files/file_path.h"
#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "base/time/time.h"
#include "chrome/browser/download/download_danger_prompt.h"
#include "chrome/common/extensions/api/downloads.h"
#include "components/download/content/public/all_download_item_notifier.h"
#include "components/download/public/common/download_path_reservation_tracker.h"
#include "content/public/browser/download_manager.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_function.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_registry_observer.h"
#include "extensions/browser/warning_set.h"
class DownloadFileIconExtractor;
class DownloadOpenPrompt;
class Profile;
namespace download_extension_errors {
extern const char kEmptyFile[];
extern const char kFileAlreadyDeleted[];
extern const char kFileNotRemoved[];
extern const char kIconNotFound[];
extern const char kInvalidDangerType[];
extern const char kInvalidFilename[];
extern const char kInvalidFilter[];
extern const char kInvalidHeaderName[];
extern const char kInvalidHeaderValue[];
extern const char kInvalidHeaderUnsafe[];
extern const char kInvalidId[];
extern const char kInvalidOrderBy[];
extern const char kInvalidQueryLimit[];
extern const char kInvalidState[];
extern const char kInvalidURL[];
extern const char kInvisibleContext[];
extern const char kNotComplete[];
extern const char kNotDangerous[];
extern const char kNotInProgress[];
extern const char kNotResumable[];
extern const char kOpenPermission[];
extern const char kShelfDisabled[];
extern const char kShelfPermission[];
extern const char kTooManyListeners[];
extern const char kUiDisabled[];
extern const char kUiPermission[];
extern const char kUnexpectedDeterminer[];
extern const char kUserGesture[];
}
namespace extensions {
class DownloadedByExtension : public base::SupportsUserData::Data { … };
class DownloadsDownloadFunction : public ExtensionFunction { … };
class DownloadsSearchFunction : public ExtensionFunction { … };
class DownloadsPauseFunction : public ExtensionFunction { … };
class DownloadsResumeFunction : public ExtensionFunction { … };
class DownloadsCancelFunction : public ExtensionFunction { … };
class DownloadsEraseFunction : public ExtensionFunction { … };
class DownloadsRemoveFileFunction : public ExtensionFunction { … };
class DownloadsAcceptDangerFunction : public ExtensionFunction { … };
class DownloadsShowFunction : public ExtensionFunction { … };
class DownloadsShowDefaultFolderFunction : public ExtensionFunction { … };
class DownloadsOpenFunction : public ExtensionFunction { … };
class DownloadsSetShelfEnabledFunction : public ExtensionFunction { … };
class DownloadsSetUiOptionsFunction : public ExtensionFunction { … };
class DownloadsGetFileIconFunction : public ExtensionFunction { … };
class ExtensionDownloadsEventRouter
: public extensions::EventRouter::Observer,
public extensions::ExtensionRegistryObserver,
public download::AllDownloadItemNotifier::Observer { … };
}
#endif