#pragma once

#include <AK/Types.h>

namespace Web::Bindings {

enum class InterfaceName : u16 {
    Unknown = 0,
    Animation = 1,
    AnimationEffect = 2,
    AnimationPlaybackEvent = 3,
    AnimationTimeline = 4,
    DocumentTimeline = 5,
    KeyframeEffect = 6,
    ScrollTimeline = 7,
    Clipboard = 8,
    ClipboardEvent = 9,
    ClipboardItem = 10,
    CompressionStream = 11,
    DecompressionStream = 12,
    SecurityPolicyViolationEvent = 13,
    CookieChangeEvent = 14,
    CookieStore = 15,
    Credential = 16,
    CredentialsContainer = 17,
    FederatedCredential = 18,
    PasswordCredential = 19,
    Crypto = 20,
    CryptoKey = 21,
    SubtleCrypto = 22,
    AnimationEvent = 23,
    CSS = 24,
    CSSAnimation = 25,
    CSSConditionRule = 26,
    CSSContainerRule = 27,
    CSSCounterStyleRule = 28,
    CSSFontFaceDescriptors = 29,
    CSSFontFaceRule = 30,
    CSSFontFeatureValuesMap = 31,
    CSSFontFeatureValuesRule = 32,
    CSSFunctionDeclarations = 33,
    CSSFunctionDescriptors = 34,
    CSSFunctionRule = 35,
    CSSGroupingRule = 36,
    CSSImageValue = 37,
    CSSImportRule = 38,
    CSSKeyframeRule = 39,
    CSSKeyframesRule = 40,
    CSSKeywordValue = 41,
    CSSLayerBlockRule = 42,
    CSSLayerStatementRule = 43,
    CSSMarginRule = 44,
    CSSMathClamp = 45,
    CSSMathInvert = 46,
    CSSMathMax = 47,
    CSSMathMin = 48,
    CSSMathNegate = 49,
    CSSMathProduct = 50,
    CSSMathSum = 51,
    CSSMathValue = 52,
    CSSMatrixComponent = 53,
    CSSMediaRule = 54,
    CSSNamespaceRule = 55,
    CSSNestedDeclarations = 56,
    CSSNumericArray = 57,
    CSSNumericValue = 58,
    CSSPageDescriptors = 59,
    CSSPageRule = 60,
    CSSPerspective = 61,
    CSSPropertyRule = 62,
    CSSRotate = 63,
    CSSRule = 64,
    CSSRuleList = 65,
    CSSScale = 66,
    CSSSkew = 67,
    CSSSkewX = 68,
    CSSSkewY = 69,
    CSSStyleDeclaration = 70,
    CSSStyleProperties = 71,
    CSSStyleRule = 72,
    CSSStyleSheet = 73,
    CSSStyleValue = 74,
    CSSSupportsRule = 75,
    CSSTransformComponent = 76,
    CSSTransformValue = 77,
    CSSTransition = 78,
    CSSTranslate = 79,
    CSSUnitValue = 80,
    CSSUnparsedValue = 81,
    CSSVariableReferenceValue = 82,
    FontFace = 83,
    FontFaceSet = 84,
    FontFaceSetLoadEvent = 85,
    MediaList = 86,
    MediaQueryList = 87,
    MediaQueryListEvent = 88,
    Screen = 89,
    ScreenOrientation = 90,
    StylePropertyMap = 91,
    StylePropertyMapReadOnly = 92,
    StyleSheet = 93,
    StyleSheetList = 94,
    TransitionEvent = 95,
    VisualViewport = 96,
    AbortController = 97,
    AbortSignal = 98,
    AbstractRange = 99,
    Attr = 100,
    CDATASection = 101,
    CharacterData = 102,
    Comment = 103,
    CustomEvent = 104,
    Document = 105,
    DocumentFragment = 106,
    DocumentType = 107,
    DOMImplementation = 108,
    DOMTokenList = 109,
    Element = 110,
    Event = 111,
    EventTarget = 112,
    HTMLCollection = 113,
    MutationObserver = 114,
    MutationRecord = 115,
    NamedNodeMap = 116,
    Node = 117,
    NodeFilter = 118,
    NodeIterator = 119,
    NodeList = 120,
    ProcessingInstruction = 121,
    Range = 122,
    ShadowRoot = 123,
    StaticRange = 124,
    Text = 125,
    TreeWalker = 126,
    XMLDocument = 127,
    URL = 128,
    Origin = 129,
    URLSearchParams = 130,
    TextDecoder = 131,
    TextDecoderStream = 132,
    TextEncoder = 133,
    TextEncoderStream = 134,
    MediaKeySystemAccess = 135,
    FileSystemEntry = 136,
    PerformanceEventTiming = 137,
    Headers = 138,
    Request = 139,
    Response = 140,
    Blob = 141,
    File = 142,
    FileList = 143,
    FileReader = 144,
    FileReaderSync = 145,
    Gamepad = 146,
    GamepadButton = 147,
    GamepadEvent = 148,
    GamepadHapticActuator = 149,
    Geolocation = 150,
    GeolocationCoordinates = 151,
    GeolocationPosition = 152,
    GeolocationPositionError = 153,
    DOMMatrix = 154,
    DOMMatrixReadOnly = 155,
    DOMPoint = 156,
    DOMPointReadOnly = 157,
    DOMQuad = 158,
    DOMRect = 159,
    DOMRectList = 160,
    DOMRectReadOnly = 161,
    Performance = 162,
    AudioTrack = 163,
    AudioTrackList = 164,
    BarProp = 165,
    BeforeUnloadEvent = 166,
    BroadcastChannel = 167,
    CanvasGradient = 168,
    CanvasPattern = 169,
    CanvasRenderingContext2D = 170,
    CloseEvent = 171,
    CloseWatcher = 172,
    CommandEvent = 173,
    CustomElementRegistry = 174,
    CustomStateSet = 175,
    DataTransfer = 176,
    DataTransferItem = 177,
    DataTransferItemList = 178,
    DedicatedWorkerGlobalScope = 179,
    DOMParser = 180,
    DOMStringList = 181,
    DOMStringMap = 182,
    DragEvent = 183,
    ElementInternals = 184,
    ErrorEvent = 185,
    EventSource = 186,
    External = 187,
    FormDataEvent = 188,
    HashChangeEvent = 189,
    History = 190,
    HTMLAllCollection = 191,
    HTMLAnchorElement = 192,
    HTMLAreaElement = 193,
    HTMLAudioElement = 194,
    HTMLBaseElement = 195,
    HTMLBodyElement = 196,
    HTMLBRElement = 197,
    HTMLButtonElement = 198,
    HTMLCanvasElement = 199,
    HTMLDataElement = 200,
    HTMLDataListElement = 201,
    HTMLDetailsElement = 202,
    HTMLDialogElement = 203,
    HTMLDirectoryElement = 204,
    HTMLDivElement = 205,
    HTMLDListElement = 206,
    HTMLDocument = 207,
    HTMLElement = 208,
    HTMLEmbedElement = 209,
    HTMLFieldSetElement = 210,
    HTMLFontElement = 211,
    HTMLFormControlsCollection = 212,
    HTMLFormElement = 213,
    HTMLFrameElement = 214,
    HTMLFrameSetElement = 215,
    HTMLHeadElement = 216,
    HTMLHeadingElement = 217,
    HTMLHRElement = 218,
    HTMLHtmlElement = 219,
    HTMLIFrameElement = 220,
    HTMLImageElement = 221,
    HTMLInputElement = 222,
    HTMLLabelElement = 223,
    HTMLLegendElement = 224,
    HTMLLIElement = 225,
    HTMLLinkElement = 226,
    HTMLMapElement = 227,
    HTMLMarqueeElement = 228,
    HTMLMediaElement = 229,
    HTMLMenuElement = 230,
    HTMLMetaElement = 231,
    HTMLMeterElement = 232,
    HTMLModElement = 233,
    HTMLObjectElement = 234,
    HTMLOListElement = 235,
    HTMLOptGroupElement = 236,
    HTMLOptionElement = 237,
    HTMLOptionsCollection = 238,
    HTMLOutputElement = 239,
    HTMLParagraphElement = 240,
    HTMLParamElement = 241,
    HTMLPictureElement = 242,
    HTMLPreElement = 243,
    HTMLProgressElement = 244,
    HTMLQuoteElement = 245,
    HTMLScriptElement = 246,
    HTMLSelectedContentElement = 247,
    HTMLSelectElement = 248,
    HTMLSlotElement = 249,
    HTMLSourceElement = 250,
    HTMLSpanElement = 251,
    HTMLStyleElement = 252,
    HTMLTableCaptionElement = 253,
    HTMLTableCellElement = 254,
    HTMLTableColElement = 255,
    HTMLTableElement = 256,
    HTMLTableRowElement = 257,
    HTMLTableSectionElement = 258,
    HTMLTemplateElement = 259,
    HTMLTextAreaElement = 260,
    HTMLTimeElement = 261,
    HTMLTitleElement = 262,
    HTMLTrackElement = 263,
    HTMLUListElement = 264,
    HTMLUnknownElement = 265,
    HTMLVideoElement = 266,
    ImageBitmap = 267,
    ImageData = 268,
    Location = 269,
    MediaError = 270,
    MessageChannel = 271,
    MessageEvent = 272,
    MessagePort = 273,
    MimeType = 274,
    MimeTypeArray = 275,
    NavigateEvent = 276,
    Navigation = 277,
    NavigationCurrentEntryChangeEvent = 278,
    NavigationDestination = 279,
    NavigationHistoryEntry = 280,
    NavigationTransition = 281,
    Navigator = 282,
    OffscreenCanvas = 283,
    OffscreenCanvasRenderingContext2D = 284,
    PageTransitionEvent = 285,
    Path2D = 286,
    Plugin = 287,
    PluginArray = 288,
    PopStateEvent = 289,
    PromiseRejectionEvent = 290,
    RadioNodeList = 291,
    SharedWorker = 292,
    SharedWorkerGlobalScope = 293,
    Storage = 294,
    StorageEvent = 295,
    SubmitEvent = 296,
    TextMetrics = 297,
    TextTrack = 298,
    TextTrackCue = 299,
    TextTrackCueList = 300,
    TextTrackList = 301,
    TimeRanges = 302,
    ToggleEvent = 303,
    TrackEvent = 304,
    UserActivation = 305,
    ValidityState = 306,
    VideoTrack = 307,
    VideoTrackList = 308,
    Window = 309,
    Worker = 310,
    WorkerGlobalScope = 311,
    WorkerLocation = 312,
    WorkerNavigator = 313,
    WorkletGlobalScope = 314,
    XMLSerializer = 315,
    IDBCursor = 316,
    IDBCursorWithValue = 317,
    IDBDatabase = 318,
    IDBFactory = 319,
    IDBIndex = 320,
    IDBKeyRange = 321,
    IDBObjectStore = 322,
    IDBOpenDBRequest = 323,
    IDBRecord = 324,
    IDBRequest = 325,
    IDBTransaction = 326,
    IDBVersionChangeEvent = 327,
    FakeXRDevice = 328,
    InternalAnimationTimeline = 329,
    InternalGamepad = 330,
    Internals = 331,
    WebUI = 332,
    XRTest = 333,
    IntersectionObserver = 334,
    IntersectionObserverEntry = 335,
    MathMLElement = 336,
    MediaCapabilities = 337,
    MediaDeviceInfo = 338,
    MediaDevices = 339,
    MediaStream = 340,
    MediaStreamTrack = 341,
    MediaStreamTrackEvent = 342,
    BufferedChangeEvent = 343,
    ManagedMediaSource = 344,
    ManagedSourceBuffer = 345,
    MediaSource = 346,
    MediaSourceHandle = 347,
    SourceBuffer = 348,
    SourceBufferList = 349,
    PerformanceNavigation = 350,
    PerformanceTiming = 351,
    Notification = 352,
    PerformanceEntry = 353,
    PerformanceObserver = 354,
    PerformanceObserverEntryList = 355,
    Permissions = 356,
    PermissionStatus = 357,
    IdleDeadline = 358,
    ResizeObserver = 359,
    ResizeObserverEntry = 360,
    ResizeObserverSize = 361,
    PerformanceResourceTiming = 362,
    Selection = 363,
    Serial = 364,
    SerialPort = 365,
    Cache = 366,
    CacheStorage = 367,
    ServiceWorker = 368,
    ServiceWorkerContainer = 369,
    ServiceWorkerGlobalScope = 370,
    ServiceWorkerRegistration = 371,
    SpeechGrammar = 372,
    SpeechGrammarList = 373,
    SpeechRecognition = 374,
    SpeechRecognitionAlternative = 375,
    SpeechRecognitionEvent = 376,
    SpeechRecognitionPhrase = 377,
    SpeechRecognitionResult = 378,
    SpeechRecognitionResultList = 379,
    SpeechSynthesis = 380,
    SpeechSynthesisUtterance = 381,
    SpeechSynthesisVoice = 382,
    StorageManager = 383,
    ByteLengthQueuingStrategy = 384,
    CountQueuingStrategy = 385,
    ReadableByteStreamController = 386,
    ReadableStream = 387,
    ReadableStreamBYOBReader = 388,
    ReadableStreamBYOBRequest = 389,
    ReadableStreamDefaultController = 390,
    ReadableStreamDefaultReader = 391,
    TransformStream = 392,
    TransformStreamDefaultController = 393,
    WritableStream = 394,
    WritableStreamDefaultController = 395,
    WritableStreamDefaultWriter = 396,
    SVGAElement = 397,
    SVGAnimatedEnumeration = 398,
    SVGAnimatedInteger = 399,
    SVGAnimatedLength = 400,
    SVGAnimatedLengthList = 401,
    SVGAnimatedNumber = 402,
    SVGAnimatedNumberList = 403,
    SVGAnimatedRect = 404,
    SVGAnimatedString = 405,
    SVGAnimatedTransformList = 406,
    SVGAnimationElement = 407,
    SVGCircleElement = 408,
    SVGClipPathElement = 409,
    SVGComponentTransferFunctionElement = 410,
    SVGDefsElement = 411,
    SVGDescElement = 412,
    SVGElement = 413,
    SVGEllipseElement = 414,
    SVGFEBlendElement = 415,
    SVGFEColorMatrixElement = 416,
    SVGFEComponentTransferElement = 417,
    SVGFECompositeElement = 418,
    SVGFEDisplacementMapElement = 419,
    SVGFEDropShadowElement = 420,
    SVGFEFloodElement = 421,
    SVGFEFuncAElement = 422,
    SVGFEFuncBElement = 423,
    SVGFEFuncGElement = 424,
    SVGFEFuncRElement = 425,
    SVGFEGaussianBlurElement = 426,
    SVGFEImageElement = 427,
    SVGFEMergeElement = 428,
    SVGFEMergeNodeElement = 429,
    SVGFEMorphologyElement = 430,
    SVGFEOffsetElement = 431,
    SVGFETurbulenceElement = 432,
    SVGFilterElement = 433,
    SVGForeignObjectElement = 434,
    SVGGElement = 435,
    SVGGeometryElement = 436,
    SVGGradientElement = 437,
    SVGGraphicsElement = 438,
    SVGImageElement = 439,
    SVGLength = 440,
    SVGLengthList = 441,
    SVGLinearGradientElement = 442,
    SVGLineElement = 443,
    SVGMaskElement = 444,
    SVGMetadataElement = 445,
    SVGNumber = 446,
    SVGNumberList = 447,
    SVGPathElement = 448,
    SVGPatternElement = 449,
    SVGPolygonElement = 450,
    SVGPolylineElement = 451,
    SVGRadialGradientElement = 452,
    SVGRectElement = 453,
    SVGScriptElement = 454,
    SVGStopElement = 455,
    SVGStyleElement = 456,
    SVGSVGElement = 457,
    SVGSymbolElement = 458,
    SVGTextContentElement = 459,
    SVGTextElement = 460,
    SVGTextPathElement = 461,
    SVGTextPositioningElement = 462,
    SVGTitleElement = 463,
    SVGTransform = 464,
    SVGTransformList = 465,
    SVGTSpanElement = 466,
    SVGUnitTypes = 467,
    SVGUseElement = 468,
    SVGViewElement = 469,
    TrustedHTML = 470,
    TrustedScript = 471,
    TrustedScriptURL = 472,
    TrustedTypePolicy = 473,
    TrustedTypePolicyFactory = 474,
    CompositionEvent = 475,
    FocusEvent = 476,
    InputEvent = 477,
    KeyboardEvent = 478,
    MouseEvent = 479,
    PointerEvent = 480,
    TextEvent = 481,
    UIEvent = 482,
    WheelEvent = 483,
    URLPattern = 484,
    PerformanceMark = 485,
    PerformanceMeasure = 486,
    ViewTransition = 487,
    Global = 488,
    Instance = 489,
    Memory = 490,
    Module = 491,
    Table = 492,
    WebAssembly = 493,
    AnalyserNode = 494,
    AudioBuffer = 495,
    AudioBufferSourceNode = 496,
    AudioContext = 497,
    AudioDestinationNode = 498,
    AudioListener = 499,
    AudioNode = 500,
    AudioParam = 501,
    AudioScheduledSourceNode = 502,
    BaseAudioContext = 503,
    BiquadFilterNode = 504,
    ChannelMergerNode = 505,
    ChannelSplitterNode = 506,
    ConstantSourceNode = 507,
    DelayNode = 508,
    DynamicsCompressorNode = 509,
    GainNode = 510,
    MediaElementAudioSourceNode = 511,
    OfflineAudioCompletionEvent = 512,
    OfflineAudioContext = 513,
    OscillatorNode = 514,
    PannerNode = 515,
    PeriodicWave = 516,
    ScriptProcessorNode = 517,
    StereoPannerNode = 518,
    ANGLEInstancedArrays = 519,
    EXTBlendMinMax = 520,
    EXTColorBufferFloat = 521,
    EXTRenderSnorm = 522,
    EXTTextureFilterAnisotropic = 523,
    EXTTextureNorm16 = 524,
    OESElementIndexUint = 525,
    OESStandardDerivatives = 526,
    OESVertexArrayObject = 527,
    WebGLCompressedTextureS3tc = 528,
    WebGLCompressedTextureS3tcSrgb = 529,
    WebGLDebugRendererInfo = 530,
    WebGLDrawBuffers = 531,
    WebGLVertexArrayObjectOES = 532,
    WebGL2RenderingContext = 533,
    WebGLActiveInfo = 534,
    WebGLBuffer = 535,
    WebGLContextEvent = 536,
    WebGLFramebuffer = 537,
    WebGLObject = 538,
    WebGLProgram = 539,
    WebGLQuery = 540,
    WebGLRenderbuffer = 541,
    WebGLRenderingContext = 542,
    WebGLSampler = 543,
    WebGLShader = 544,
    WebGLShaderPrecisionFormat = 545,
    WebGLSync = 546,
    WebGLTexture = 547,
    WebGLTransformFeedback = 548,
    WebGLUniformLocation = 549,
    WebGLVertexArrayObject = 550,
    DOMException = 551,
    QuotaExceededError = 552,
    WebSocket = 553,
    VTTCue = 554,
    VTTRegion = 555,
    XRLayer = 556,
    XRRenderState = 557,
    XRSession = 558,
    XRSessionEvent = 559,
    XRSystem = 560,
    XRWebGLLayer = 561,
    FormData = 562,
    ProgressEvent = 563,
    XMLHttpRequest = 564,
    XMLHttpRequestEventTarget = 565,
    XMLHttpRequestUpload = 566,
    XPathEvaluator = 567,
    XPathExpression = 568,
    XPathResult = 569,
};

bool is_exposed(InterfaceName, JS::Realm&);

}
