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

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

}
