#ifndef EXTENSIONS_BROWSER_API_USB_USB_API_H_
#define EXTENSIONS_BROWSER_API_USB_USB_API_H_
#include <stddef.h>
#include <stdint.h>
#include <memory>
#include <string>
#include <vector>
#include "base/containers/span.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/values.h"
#include "extensions/browser/api/usb/usb_device_manager.h"
#include "extensions/browser/extension_function.h"
#include "extensions/common/api/usb.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/device/public/mojom/usb_device.mojom.h"
namespace extensions {
class DevicePermissionEntry;
class DevicePermissionsPrompt;
class DevicePermissionsManager;
class UsbDeviceResource;
class UsbExtensionFunction : public ExtensionFunction { … };
class UsbPermissionCheckingFunction : public UsbExtensionFunction { … };
class UsbConnectionFunction : public UsbExtensionFunction { … };
class UsbTransferFunction : public UsbConnectionFunction { … };
class UsbGenericTransferFunction : public UsbTransferFunction { … };
class UsbFindDevicesFunction : public UsbExtensionFunction { … };
class UsbGetDevicesFunction : public UsbPermissionCheckingFunction { … };
class UsbGetUserSelectedDevicesFunction : public UsbExtensionFunction { … };
class UsbGetConfigurationsFunction : public UsbPermissionCheckingFunction { … };
class UsbRequestAccessFunction : public ExtensionFunction { … };
class UsbOpenDeviceFunction : public UsbPermissionCheckingFunction { … };
class UsbSetConfigurationFunction : public UsbConnectionFunction { … };
class UsbGetConfigurationFunction : public UsbConnectionFunction { … };
class UsbListInterfacesFunction : public UsbConnectionFunction { … };
class UsbCloseDeviceFunction : public UsbConnectionFunction { … };
class UsbClaimInterfaceFunction : public UsbConnectionFunction { … };
class UsbReleaseInterfaceFunction : public UsbConnectionFunction { … };
class UsbSetInterfaceAlternateSettingFunction : public UsbConnectionFunction { … };
class UsbControlTransferFunction : public UsbTransferFunction { … };
class UsbBulkTransferFunction : public UsbGenericTransferFunction { … };
class UsbInterruptTransferFunction : public UsbGenericTransferFunction { … };
class UsbIsochronousTransferFunction : public UsbTransferFunction { … };
class UsbResetDeviceFunction : public UsbConnectionFunction { … };
}
#endif