// Path: src/gwt/react/client/api/ReactRef.java
// @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object")
// public class ReactRef<T> {
// 	@JsProperty
// 	public T current;
// }
// 
// Path: src/gwt/react/client/proptypes/ReactRefCallback.java
// @JsFunction
// public interface ReactRefCallback {
//     void passRef(Object refElement);
// }
// 
// Path: src/gwt/react/client/proptypes/html/attributeTypes/AudioPreload.java
// public enum AudioPreload {
//     auto, metadata, none
// }
// 
// Path: src/gwt/react/client/proptypes/html/attributeTypes/YesNo.java
// public enum YesNo {
//     yes, no
// }


import elemental2.dom.HTMLAudioElement;
import gwt.react.client.api.ReactRef;
import gwt.react.client.events.*;
import gwt.react.client.proptypes.ReactRefCallback;
import gwt.react.client.proptypes.html.attributeTypes.AudioPreload;
import gwt.react.client.proptypes.html.attributeTypes.YesNo;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsType;

    //Global HTML props
    @JsOverlay public final AudioProps accessKey(String s) { accessKey = s;return this;}
    @JsOverlay public final AudioProps className(String s) { className = s; return this; }
    @JsOverlay public final AudioProps contentEditable(boolean b) { contentEditable = b; return this; }
    @JsOverlay public final AudioProps contextMenu(String s) { contextMenu = s; return this; }
    @JsOverlay public final AudioProps dir(String s) { dir = s; return this; }
    @JsOverlay public final AudioProps draggable(boolean b) { draggable = b; return this; }
    @JsOverlay public final AudioProps hidden(boolean b) { hidden = b; return this; }
    @JsOverlay public final AudioProps id(String s) { id = s; return this; }
    @JsOverlay public final AudioProps lang(String s) { lang = s; return this; }
    @JsOverlay public final AudioProps spellcheck(boolean b) { spellCheck = b; return this; }
    @JsOverlay public final AudioProps style(CssProps s) { style = s; return this; }
    @JsOverlay public final AudioProps tabIndex(int i) { tabIndex = i; return this; }
    @JsOverlay public final AudioProps title(String s) { title = s; return this; }
    @JsOverlay public final AudioProps translate(YesNo s) { translate = s.name(); return this; }

    //Applicable Event Handlers

    // Focus Events
    @JsOverlay public final AudioProps onBlur(FocusEventHandler handler) { onBlur = handler; return this; }
    @JsOverlay public final AudioProps onFocus(FocusEventHandler handler) { onFocus = handler; return this; }

    // Keyboard Events
    @JsOverlay public final AudioProps onKeyDown(KeyboardEventHandler handler) { onKeyDown = handler; return this; }
    @JsOverlay public final AudioProps onKeyPress(KeyboardEventHandler handler) { onKeyPress = handler; return this; }
    @JsOverlay public final AudioProps onKeyUp(KeyboardEventHandler handler) { onKeyUp = handler; return this; }

    @JsOverlay public final AudioProps onClick(MouseEventHandler handler) { onClick = handler; return this; }
    @JsOverlay public final AudioProps onContextMenu(MouseEventHandler handler) { onContextMenu = handler; return this; }
// Path: src/gwt/react/client/api/ReactRef.java
// @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object")
// public class ReactRef<T> {
// 	@JsProperty
// 	public T current;
// }
// 
// Path: src/gwt/react/client/proptypes/ReactRefCallback.java
// @JsFunction
// public interface ReactRefCallback {
//     void passRef(Object refElement);
// }
// 
// Path: src/gwt/react/client/proptypes/html/attributeTypes/AudioPreload.java
// public enum AudioPreload {
//     auto, metadata, none
// }
// 
// Path: src/gwt/react/client/proptypes/html/attributeTypes/YesNo.java
// public enum YesNo {
//     yes, no
// }


// Path: src/gwt/react/client/proptypes/html/AudioProps.java
import elemental2.dom.HTMLAudioElement;
import gwt.react.client.api.ReactRef;
import gwt.react.client.events.*;
import gwt.react.client.proptypes.ReactRefCallback;
import gwt.react.client.proptypes.html.attributeTypes.AudioPreload;
import gwt.react.client.proptypes.html.attributeTypes.YesNo;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsType;


    //Global HTML props
    @JsOverlay public final AudioProps accessKey(String s) { accessKey = s;return this;}
    @JsOverlay public final AudioProps className(String s) { className = s; return this; }
    @JsOverlay public final AudioProps contentEditable(boolean b) { contentEditable = b; return this; }
    @JsOverlay public final AudioProps contextMenu(String s) { contextMenu = s; return this; }
    @JsOverlay public final AudioProps dir(String s) { dir = s; return this; }
    @JsOverlay public final AudioProps draggable(boolean b) { draggable = b; return this; }
    @JsOverlay public final AudioProps hidden(boolean b) { hidden = b; return this; }
    @JsOverlay public final AudioProps id(String s) { id = s; return this; }
    @JsOverlay public final AudioProps lang(String s) { lang = s; return this; }
    @JsOverlay public final AudioProps spellcheck(boolean b) { spellCheck = b; return this; }
    @JsOverlay public final AudioProps style(CssProps s) { style = s; return this; }
    @JsOverlay public final AudioProps tabIndex(int i) { tabIndex = i; return this; }
    @JsOverlay public final AudioProps title(String s) { title = s; return this; }
    @JsOverlay public final AudioProps translate(YesNo s) { translate = s.name(); return this; }

    //Applicable Event Handlers

    // Focus Events
    @JsOverlay public final AudioProps onBlur(FocusEventHandler handler) { onBlur = handler; return this; }
    @JsOverlay public final AudioProps onFocus(FocusEventHandler handler) { onFocus = handler; return this; }

    // Keyboard Events
    @JsOverlay public final AudioProps onKeyDown(KeyboardEventHandler handler) { onKeyDown = handler; return this; }
    @JsOverlay public final AudioProps onKeyPress(KeyboardEventHandler handler) { onKeyPress = handler; return this; }
    @JsOverlay public final AudioProps onKeyUp(KeyboardEventHandler handler) { onKeyUp = handler; return this; }

    @JsOverlay public final AudioProps onClick(MouseEventHandler handler) { onClick = handler; return this; }
    @JsOverlay public final AudioProps onContextMenu(MouseEventHandler handler) { onContextMenu = handler; return this; }
    @JsOverlay public final AudioProps onDoubleClick(MouseEventHandler handler) { onDoubleClick = handler; return this; }