#pragma once

#include <AK/Utf16String.h>
#include <LibJS/Forward.h>
#include <LibJS/Runtime/Value.h>

namespace Web::Bindings {

enum class CORSSettingsAttribute : u8 {
    Anonymous,
    UseCredentials,
};

JS::ThrowCompletionOr<CORSSettingsAttribute> convert_to_idl_value_for_cors_settings_attribute(JS::VM&, JS::Value);

Utf16String idl_enum_to_string(CORSSettingsAttribute);

enum class LazyLoadingAttribute : u8 {
    Lazy,
    Eager,
};

JS::ThrowCompletionOr<LazyLoadingAttribute> convert_to_idl_value_for_lazy_loading_attribute(JS::VM&, JS::Value);

Utf16String idl_enum_to_string(LazyLoadingAttribute);

enum class FetchPriorityAttribute : u8 {
    High,
    Low,
    Auto,
};

JS::ThrowCompletionOr<FetchPriorityAttribute> convert_to_idl_value_for_fetch_priority_attribute(JS::VM&, JS::Value);

Utf16String idl_enum_to_string(FetchPriorityAttribute);

} // namespace Web::Bindings
