// services/webnn/public/mojom/webnn_graph.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 SERVICES_WEBNN_PUBLIC_MOJOM_WEBNN_GRAPH_MOJOM_BLINK_FORWARD_H_
#define SERVICES_WEBNN_PUBLIC_MOJOM_WEBNN_GRAPH_MOJOM_BLINK_FORWARD_H_

#include <stdint.h>

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




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





namespace webnn::mojom {

enum class DataType : int32_t;

enum class RecurrentNetworkActivation : int32_t;

enum class RecurrentNetworkDirection : int32_t;

enum class GruWeightLayout : int32_t;

enum class LstmWeightLayout : int32_t;

enum class Operand_Kind : int32_t;

enum class ArgMinMax_Kind : int32_t;

enum class Conv2d_Kind : int32_t;

enum class ElementWiseBinary_Kind : int32_t;

enum class ElementWiseUnary_Kind : int32_t;

enum class Reduce_Kind : int32_t;

enum class Pool2d_Kind : int32_t;

enum class Resample2d_InterpolationMode : int32_t;


}  // webnn::mojom


namespace webnn::mojom::blink {
using DataType = DataType;
using RecurrentNetworkActivation = RecurrentNetworkActivation;
using RecurrentNetworkDirection = RecurrentNetworkDirection;
using GruWeightLayout = GruWeightLayout;
using LstmWeightLayout = LstmWeightLayout;
class OperandDescriptor;
using OperandDescriptorPtr = mojo::StructPtr<OperandDescriptor>;

class OperandId;
using OperandIdPtr = mojo::InlinedStructPtr<OperandId>;

class Operand;
using OperandPtr = mojo::StructPtr<Operand>;

class ArgMinMax;
using ArgMinMaxPtr = mojo::StructPtr<ArgMinMax>;

class BatchNormalization;
using BatchNormalizationPtr = mojo::StructPtr<BatchNormalization>;

class Clamp;
using ClampPtr = mojo::StructPtr<Clamp>;

class Concat;
using ConcatPtr = mojo::StructPtr<Concat>;

class Size2d;
using Size2dPtr = mojo::InlinedStructPtr<Size2d>;

class Padding2d;
using Padding2dPtr = mojo::StructPtr<Padding2d>;

class Conv2d;
using Conv2dPtr = mojo::StructPtr<Conv2d>;

class CumulativeSum;
using CumulativeSumPtr = mojo::StructPtr<CumulativeSum>;

class DequantizeLinear;
using DequantizeLinearPtr = mojo::StructPtr<DequantizeLinear>;

class ElementWiseBinary;
using ElementWiseBinaryPtr = mojo::StructPtr<ElementWiseBinary>;

class ElementWiseUnary;
using ElementWiseUnaryPtr = mojo::StructPtr<ElementWiseUnary>;

class Expand;
using ExpandPtr = mojo::StructPtr<Expand>;

class ConstantPadding;
using ConstantPaddingPtr = mojo::StructPtr<ConstantPadding>;

class EdgePadding;
using EdgePaddingPtr = mojo::InlinedStructPtr<EdgePadding>;

class ReflectionPadding;
using ReflectionPaddingPtr = mojo::InlinedStructPtr<ReflectionPadding>;

class InstanceNormalization;
using InstanceNormalizationPtr = mojo::StructPtr<InstanceNormalization>;

class Matmul;
using MatmulPtr = mojo::StructPtr<Matmul>;

class Pad;
using PadPtr = mojo::StructPtr<Pad>;

class Reduce;
using ReducePtr = mojo::StructPtr<Reduce>;

class Pool2d;
using Pool2dPtr = mojo::StructPtr<Pool2d>;

class Range;
using RangePtr = mojo::InlinedStructPtr<Range>;

class Slice;
using SlicePtr = mojo::StructPtr<Slice>;

class Elu;
using EluPtr = mojo::StructPtr<Elu>;

class Gather;
using GatherPtr = mojo::StructPtr<Gather>;

class GatherElements;
using GatherElementsPtr = mojo::StructPtr<GatherElements>;

class GatherND;
using GatherNDPtr = mojo::StructPtr<GatherND>;

class Gelu;
using GeluPtr = mojo::StructPtr<Gelu>;

class Gru;
using GruPtr = mojo::StructPtr<Gru>;

class GruCell;
using GruCellPtr = mojo::StructPtr<GruCell>;

class Gemm;
using GemmPtr = mojo::StructPtr<Gemm>;

class HardSigmoid;
using HardSigmoidPtr = mojo::StructPtr<HardSigmoid>;

class HardSwish;
using HardSwishPtr = mojo::StructPtr<HardSwish>;

class LayerNormalization;
using LayerNormalizationPtr = mojo::StructPtr<LayerNormalization>;

class LeakyRelu;
using LeakyReluPtr = mojo::StructPtr<LeakyRelu>;

class Linear;
using LinearPtr = mojo::StructPtr<Linear>;

class Lstm;
using LstmPtr = mojo::StructPtr<Lstm>;

class LstmCell;
using LstmCellPtr = mojo::StructPtr<LstmCell>;

class Prelu;
using PreluPtr = mojo::StructPtr<Prelu>;

class QuantizeLinear;
using QuantizeLinearPtr = mojo::StructPtr<QuantizeLinear>;

class Relu;
using ReluPtr = mojo::StructPtr<Relu>;

class Reshape;
using ReshapePtr = mojo::StructPtr<Reshape>;

class Reverse;
using ReversePtr = mojo::StructPtr<Reverse>;

class ScatterElements;
using ScatterElementsPtr = mojo::StructPtr<ScatterElements>;

class ScatterND;
using ScatterNDPtr = mojo::StructPtr<ScatterND>;

class Sigmoid;
using SigmoidPtr = mojo::StructPtr<Sigmoid>;

class Softmax;
using SoftmaxPtr = mojo::StructPtr<Softmax>;

class Softplus;
using SoftplusPtr = mojo::StructPtr<Softplus>;

class Softsign;
using SoftsignPtr = mojo::StructPtr<Softsign>;

class Split;
using SplitPtr = mojo::StructPtr<Split>;

class Tanh;
using TanhPtr = mojo::StructPtr<Tanh>;

class Tile;
using TilePtr = mojo::StructPtr<Tile>;

class Transpose;
using TransposePtr = mojo::StructPtr<Transpose>;

class Triangular;
using TriangularPtr = mojo::StructPtr<Triangular>;

class Resample2d;
using Resample2dPtr = mojo::StructPtr<Resample2d>;

class Where;
using WherePtr = mojo::StructPtr<Where>;

class GraphInfo;
using GraphInfoPtr = mojo::StructPtr<GraphInfo>;

class Number;

using NumberPtr = mojo::InlinedStructPtr<Number>;

class PaddingMode;

using PaddingModePtr = mojo::StructPtr<PaddingMode>;

class Operation;

using OperationPtr = mojo::StructPtr<Operation>;




}  // webnn::mojom::blink

#endif  // SERVICES_WEBNN_PUBLIC_MOJOM_WEBNN_GRAPH_MOJOM_BLINK_FORWARD_H_