/* eslint-disable @typescript-eslint/no-unused-vars */

// Fix extends detection errors by adding readonly `x6_vector_type`
// =============================================================================
// type AA = SVGForeignObjectElement extends SVGSVGElement ? true : false
// type AAA = SVGSVGElement extends SVGForeignObjectElement ? true : false

// type BB = SVGGElement extends SVGDefsElement ? true : false
// type BBB = SVGDefsElement extends SVGGElement ? true : false

// type CC = SVGGElement extends SVGDefsElement ? true : false
// type CCC = SVGDefsElement extends SVGGElement ? true : false

// type DD = SVGTSpanElement extends SVGTextElement ? true : false
// type DDD = SVGTextElement extends SVGTSpanElement ? true : false

// type EE = SVGPolylineElement extends SVGPolygonElement ? true : false
// type EEE = SVGPolygonElement extends SVGPolylineElement ? true : false
// =============================================================================

interface DocumentFragment extends Element, SVGElement {}

interface SVGAElement {
  readonly x6_vector_type: 'a'
}

interface SVGAnimateElement {
  readonly x6_vector_type: 'animate'
}

interface SVGAnimateMotionElement {
  readonly x6_vector_type: 'animateMotion'
}

interface SVGAnimateTransformElement {
  readonly x6_vector_type: 'animateTransform'
}

interface SVGCircleElement {
  readonly x6_vector_type: 'circle'
}

interface SVGClipPathElement {
  readonly x6_vector_type: 'clipPath'
}

interface SVGDefsElement {
  readonly x6_vector_type: 'defs'
}

interface SVGDescElement {
  readonly x6_vector_type: 'desc'
}

interface SVGEllipseElement {
  readonly x6_vector_type: 'ellipse'
}

interface SVGFEBlendElement {
  readonly x6_vector_type: 'feBlend'
}

interface SVGFEColorMatrixElement {
  readonly x6_vector_type: 'feColorMatrix'
}

interface SVGFEComponentTransferElement {
  readonly x6_vector_type: 'feComponentTransfer'
}

interface SVGFECompositeElement {
  readonly x6_vector_type: 'feComposite'
}

interface SVGFEConvolveMatrixElement {
  readonly x6_vector_type: 'feConvolveMatrix'
}

interface SVGFEDiffuseLightingElement {
  readonly x6_vector_type: 'feDiffuseLighting'
}

interface SVGFEDisplacementMapElement {
  readonly x6_vector_type: 'feDisplacementMap'
}

interface SVGFEDistantLightElement {
  readonly x6_vector_type: 'feDistantLight'
}

interface SVGFEFloodElement {
  readonly x6_vector_type: 'feFlood'
}

interface SVGFEFuncAElement {
  readonly x6_vector_type: 'feFuncA'
}

interface SVGFEFuncBElement {
  readonly x6_vector_type: 'feFuncB'
}

interface SVGFEFuncGElement {
  readonly x6_vector_type: 'feFuncG'
}

interface SVGFEFuncRElement {
  readonly x6_vector_type: 'feFuncR'
}

interface SVGFEGaussianBlurElement {
  readonly x6_vector_type: 'feGaussianBlur'
}

interface SVGFEImageElement {
  readonly x6_vector_type: 'feImage'
}

interface SVGFEMergeElement {
  readonly x6_vector_type: 'feMerge'
}

interface SVGFEMergeNodeElement {
  readonly x6_vector_type: 'feMergeNode'
}

interface SVGFEMorphologyElement {
  readonly x6_vector_type: 'feMorphology'
}

interface SVGFEOffsetElement {
  readonly x6_vector_type: 'feOffset'
}

interface SVGFEPointLightElement {
  readonly x6_vector_type: 'fePointLight'
}

interface SVGFESpecularLightingElement {
  readonly x6_vector_type: 'feSpecularLighting'
}

interface SVGFESpotLightElement {
  readonly x6_vector_type: 'feSpotLight'
}

interface SVGFETileElement {
  readonly x6_vector_type: 'feTile'
}

interface SVGFETurbulenceElement {
  readonly x6_vector_type: 'feTurbulence'
}

interface SVGFilterElement {
  readonly x6_vector_type: 'filter'
}

interface SVGForeignObjectElement {
  readonly x6_vector_type: 'foreignObject'
}

interface SVGGElement {
  readonly x6_vector_type: 'g'
}

interface SVGImageElement {
  readonly x6_vector_type: 'image'
}

interface SVGLineElement {
  readonly x6_vector_type: 'line'
}

interface SVGLinearGradientElement {
  readonly x6_vector_type: 'linearGradient'
}

interface SVGMarkerElement {
  readonly x6_vector_type: 'marker'
}

interface SVGMaskElement {
  readonly x6_vector_type: 'mask'
}

interface SVGMetadataElement {
  readonly x6_vector_type: 'metadata'
}

interface SVGPathElement {
  readonly x6_vector_type: 'path'
}

interface SVGPatternElement {
  readonly x6_vector_type: 'pattern'
}

interface SVGPolygonElement {
  readonly x6_vector_type: 'polygon'
}

interface SVGPolylineElement {
  readonly x6_vector_type: 'polyline'
}

interface SVGRadialGradientElement {
  readonly x6_vector_type: 'radialGradient'
}

interface SVGRectElement {
  readonly x6_vector_type: 'rect'
}

interface SVGScriptElement {
  readonly x6_vector_type: 'script'
}

interface SVGStopElement {
  readonly x6_vector_type: 'stop'
}

interface SVGStyleElement {
  readonly x6_vector_type: 'style'
}

interface SVGSVGElement {
  readonly x6_vector_type: 'svg'
}

interface SVGSwitchElement {
  readonly x6_vector_type: 'switch'
}

interface SVGSymbolElement {
  readonly x6_vector_type: 'symbol'
}

interface SVGTextElement {
  readonly x6_vector_type: 'text'
}

interface SVGTextPathElement {
  readonly x6_vector_type: 'textPath'
}

interface SVGTitleElement {
  readonly x6_vector_type: 'title'
}

interface SVGTSpanElement {
  readonly x6_vector_type: 'tspan'
}

interface SVGUseElement {
  readonly x6_vector_type: 'use'
}

interface SVGViewElement {
  readonly x6_vector_type: 'view'
}

interface HTMLAbbrElement extends HTMLElement {
  readonly x6_vector_type: 'abbr'
}
