// DO NOT EDIT
// Auto-generated dart:svg library.

/**
 * Scalable Vector Graphics:
 * Two-dimensional vector graphics with support for events and animation.
 *
 * For details about the features and syntax of SVG, a W3C standard,
 * refer to the
 * [Scalable Vector Graphics Specification](http://www.w3.org/TR/SVG/).
 */
library dart.dom.svg;

import 'dart:async';
import 'dart:collection';
import 'dart:_internal';
import 'dart:html';
import 'dart:html_common';
import 'dart:nativewrappers';
import 'dart:_blink' as _blink;
import 'dart:js' as js;

part '$AUXILIARY_DIR/shared_SVGFactoryProviders.dart';

// Need a default constructor for constructing classes with mixins that are
// also extending NativeFieldWrapperClass2.  Defining JsoNativeFieldWrapper
// extending NativeFieldWrapperClass2 creates a default constructor.
class JsoNativeFieldWrapper extends NativeFieldWrapperClass2 {}

$!GENERATED_DART_FILES
// FIXME: Can we make this private?
final svgBlinkMap = {
$!TYPE_MAP
};

$if JSINTEROP
// FIXME: Can we make this private?
final svgBlinkFunctionMap = {
$!TYPE_FUNCTION_MAP
};
$endif
