/// ## Description
/// The file contains the element definitions.
///
/// ## Note
/// If you about to add something to the file, stick to the official documentation to keep the code consistent.
///
/// ## Authors
/// Mats Moll: https://github.com/matsmoll
/// Mattes Mohr: https://github.com/mattesmohr

public typealias GlobalElement = BodyElement & DescriptionElement & FigureElement & FormElement & BasicElement & HeadElement & ListElement & MapElement & MediaElement & ObjectElement & RubyElement & TableElement & HtmlElement

/// ## Description
/// The protocol defines a body element.
///
/// ## References
///
public protocol BodyElement: AnyElement {
}

/// ## Description
/// The protocol defines a description element.
///
/// ## References
///
public protocol DescriptionElement: AnyElement {
}

/// ## Description
/// The protocol defines a figure element.
///
/// ## References
///
public protocol FigureElement: AnyElement {
}

/// ## Description
/// The protocol defines a form element.
///
/// ## References
///
public protocol FormElement: AnyElement {
}

/// ## Description
/// The protocol defines a basic element.
///
/// ## References
///
public protocol BasicElement: AnyElement {
}

/// ## Description
/// The protocol defines a head element.
///
/// ## References
///
public protocol HeadElement: AnyElement {
}

/// ## Description
/// The protocol defines a input element.
///
/// ## References
///
public protocol InputElement: AnyElement {
}

/// ## Description
/// The protocol defines a list element.
///
/// ## References
///
public protocol ListElement: AnyElement {
}

/// ## Description
/// The protocol defines a map element.
///
/// ## References
///
public protocol MapElement: AnyElement {
}

/// ## Description
/// The protocol defines a media element.
///
/// ## References
///
public protocol MediaElement: AnyElement {
}

/// ## Description
/// The protocol defines a object element.
///
/// ## References
///
public protocol ObjectElement: AnyElement {
}

/// ## Description
/// The protocol defines a ruby element.
///
/// ## References
///
public protocol RubyElement: AnyElement {
}

/// ## Description
/// The protocol defines a table element.
///
/// ## References
///
public protocol TableElement: AnyElement {
}

/// ## Description
/// The protocol defines a html element.
///
/// ## References
///
public protocol HtmlElement: AnyElement {
}
