#pragma once

#include "platform_api/platform_services.h"

#include <future>

struct VrSessionSnapshot;
struct VrShellState;

namespace pp::platform::windows {

[[nodiscard]] PlatformServices& platform_services();
[[nodiscard]] VrShellState& platform_vr_state() noexcept;
[[nodiscard]] VrSessionSnapshot read_platform_vr_session_snapshot() noexcept;
void enqueue_main_thread_task(std::packaged_task<void()> task);
void drain_main_thread_tasks();

}
