// Copyright 2015 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.ui.viewsv1;

using fuchsia.ui.gfx;
using fuchsia.ui.scenic;
using fuchsia.math;

// This is a temporary solution to expose hit testing to the accessibility manager before the
// scenic refactor.
// TODO(SCN-845) A new hit test API will be exposed after the refactor.
//
// DO NOT USE!

[Discoverable]
interface AccessibilityViewInspector {
  // Provides a FIDL interface to expose the hit test mechanism from view manager.
  1: PerformHitTest(ViewTreeToken token, fuchsia.math.Point3F origin,
                    fuchsia.math.Point3F direction) -> (vector<fuchsia.ui.gfx.Hit> hits);
};
