#include <AK/URL.h>
#include <LibCore/AnonymousBuffer.h>
#include <LibGfx/ShareableBitmap.h>
#include <LibWeb/CSS/PreferredColorScheme.h>

endpoint WebContentServer
{
    update_system_theme(Core::AnonymousBuffer theme_buffer) =|
    update_system_fonts(String default_font_query, String fixed_width_font_query) =|
    update_screen_rects(Vector<Gfx::IntRect> rects, u32 main_screen_index) =|

    load_url(URL url) =|
    load_html(String html, URL url) =|

    add_backing_store(i32 backing_store_id, Gfx::ShareableBitmap bitmap) =|
    remove_backing_store(i32 backing_store_id) =|

    paint(Gfx::IntRect content_rect, i32 backing_store_id) =|
    set_viewport_rect(Gfx::IntRect rect) =|

    mouse_down(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =|
    mouse_move(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =|
    mouse_up(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers) =|
    mouse_wheel(Gfx::IntPoint position, unsigned button, unsigned buttons, unsigned modifiers, i32 wheel_delta_x, i32 wheel_delta_y) =|

    key_down(i32 key, unsigned modifiers, u32 code_point) =|
    key_up(i32 key, unsigned modifiers, u32 code_point) =|

    debug_request(String request, String argument) =|
    get_source() =|
    inspect_dom_tree() =|
    inspect_dom_node(i32 node_id) => (bool has_style, String specified_style, String computed_style, String custom_properties)
    get_hovered_node_id() => (i32 node_id)
    js_console_input(String js_source) =|
    js_console_request_messages(i32 start_index) =|

    run_javascript(String js_source) =|

    dump_layout_tree() => (String dump)

    get_selected_text() => (String selection)
    select_all() =|

    set_content_filters(Vector<String> filters) =|
    set_preferred_color_scheme(Web::CSS::PreferredColorScheme color_scheme) =|

}
