#pragma once

#include <AK/Optional.h>
#include <LibGC/Ptr.h>
#include <LibJS/Forward.h>
#include <LibJS/Runtime/Value.h>
#include <LibWeb/WebIDL/CallbackType.h>

namespace Web::Bindings {

struct QueuingStrategy {
    Optional<double> high_water_mark {};
    GC::Ptr<WebIDL::CallbackType> size {};
};

JS::ThrowCompletionOr<QueuingStrategy> convert_to_idl_value_for_queuing_strategy(JS::VM&, JS::Value);

} // namespace Web::Bindings
