// mojo/public/cpp/bindings/tests/default_construct_unittest.test-mojom-blink-forward.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_DEFAULT_CONSTRUCT_UNITTEST_TEST_MOJOM_BLINK_FORWARD_H_
#define MOJO_PUBLIC_CPP_BINDINGS_TESTS_DEFAULT_CONSTRUCT_UNITTEST_TEST_MOJOM_BLINK_FORWARD_H_



#include "mojo/public/cpp/bindings/struct_forward.h"

#include "mojo/public/cpp/bindings/deprecated_interface_types_forward.h"


#include "mojo/public/interfaces/bindings/native_struct.mojom-forward.h"

#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif



namespace mojo::test::default_construct::mojom {
class TestInterfaceInterfaceBase;


}  // mojo::test::default_construct::mojom


namespace mojo::test::default_construct::mojom::blink {
// Aliases for definition in the parent namespace.
using TestInterfaceInterfaceBase = TestInterfaceInterfaceBase;
class TestStruct;
using TestStructPtr = mojo::InlinedStructPtr<TestStruct>;

class TestStructContainer;
using TestStructContainerPtr = mojo::StructPtr<TestStructContainer>;

class OptionalTestStructContainer;
using OptionalTestStructContainerPtr = mojo::StructPtr<OptionalTestStructContainer>;

class TestInterface;




}  // mojo::test::default_construct::mojom::blink

#endif  // MOJO_PUBLIC_CPP_BINDINGS_TESTS_DEFAULT_CONSTRUCT_UNITTEST_TEST_MOJOM_BLINK_FORWARD_H_