// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxBeforeSendHandler.java
// @JSFunctor
// public interface AjaxBeforeSendHandler extends JSObject {
//     void onBeforeSend(JQueryXHR jqXHR, JQueryAjaxSettingsObject settings);
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxCompleteHandler.java
// @JSFunctor
// public interface AjaxCompleteHandler extends JSObject {
// 	
// 	void onComplete(JQueryXHR jqXHR, String textStatus);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxErrorHandler.java
// @JSFunctor
// public interface AjaxErrorHandler extends JSObject {
// 
//     void onError(JQueryXHR jqXHR, JSString textStatus, JSString errorThrow);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxFilterHandler.java
// @JSFunctor
// public interface AjaxFilterHandler extends JSObject {
// 
// 	public abstract JSObject apply(JSObject data, String dataType);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxSuccessHandler.java
// @JSFunctor
// public interface AjaxSuccessHandler<T extends JSObject> extends JSObject {
// 
// 	void onSuccess(T data, JSString textStatus, JQueryXHR jqXHR);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxXhrFunctionHandler.java
// public interface AjaxXhrFunctionHandler extends JSObject {
// 
//     JSFunction onXhr();
// 
// }
// 
// Path: utils/src/main/java/de/iterable/teavm/utils/functor/JSFunctor0.java
// @JSFunctor
// public interface JSFunctor0<R extends JSObject> extends JSFunctorBase{
// 
// 	public R apply();
// 
// }
// 
// Path: utils/src/main/java/de/iterable/teavm/utils/jso/JSDictonary.java
// public abstract class JSDictonary implements JSObject {
// 
//     private JSDictonary() {
//     }
// 
//     @JSIndexer
//     public abstract <V extends JSObject> V get(String key);
// 
//     @JSIndexer
//     public abstract <V extends JSObject> void put(String key, V value);
// 
//     public <V extends JSObject> JSDictonary with(String key, V value) {
//         this.put(key, value);
//         return this;
//     }
// 
//     public JSDictonary with(String key, String value) {
//         return this.with(key, JSString.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, JSDictonary value) {
//         return this.with(key, (JSObject) value);
//     }
// 
//     public JSDictonary with(String key, Integer value) {
//         return this.with(key, JSNumber.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, Float value) {
//         return this.with(key, JSNumber.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, Double value) {
//         return this.with(key, JSNumber.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, Boolean value) {
//         return this.with(key, JSBoolean.valueOf(value));
//     }
// 
//     public JSObject remove(String key) {
//         if (JSObjectUtils.hasOwnProperty(this, key)) {
//             final JSObject value = get(key);
//             JSObjectUtils.delete(this, key);
//             return value;
//         }
//         return null;
//     }
// 
//     public String[] keys() {
//         return JSObjectUtils.keys(this);
//     }
// 
//     public boolean has(String key) {
//         return JSObjectUtils.hasOwnProperty(this, key);
//     }
// 
//     public static <V extends JSObject> JSDictonary create() {
//         return JSObjectUtils.create();
//     }
// 
// }


import org.teavm.jso.JSBody;
import org.teavm.jso.JSObject;
import org.teavm.jso.JSProperty;
import org.teavm.jso.core.JSArray;
import org.teavm.jso.core.JSString;
import de.iterable.teavm.jquery.ajax.handler.AjaxBeforeSendHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxCompleteHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxErrorHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxFilterHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxSuccessHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxXhrFunctionHandler;
import de.iterable.teavm.utils.functor.JSFunctor0;
import de.iterable.teavm.utils.jso.JSDictonary;
    public final native void setContents(JSDictonary contents);

    @JSProperty
    public final native void setConverters(JSDictonary converters);

    @JSProperty
    public abstract void setCrossDomain(boolean crossDomain);

    @JSProperty
    public abstract void setData(JSDictonary data);

    @JSProperty
    public abstract void setData(JSArray<JSObject> data);

    @JSProperty
    public abstract void setData(String data);

    @JSProperty
    public abstract void setDataFilter(AjaxFilterHandler filter);

    @JSProperty
    public abstract void setDataType(String dataType);

    @JSProperty("error")
    public abstract void setErrorHandler(AjaxErrorHandler handler);

    @JSProperty
    public abstract void setGlobal(boolean isGlobal);

    @JSProperty
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxBeforeSendHandler.java
// @JSFunctor
// public interface AjaxBeforeSendHandler extends JSObject {
//     void onBeforeSend(JQueryXHR jqXHR, JQueryAjaxSettingsObject settings);
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxCompleteHandler.java
// @JSFunctor
// public interface AjaxCompleteHandler extends JSObject {
// 	
// 	void onComplete(JQueryXHR jqXHR, String textStatus);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxErrorHandler.java
// @JSFunctor
// public interface AjaxErrorHandler extends JSObject {
// 
//     void onError(JQueryXHR jqXHR, JSString textStatus, JSString errorThrow);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxFilterHandler.java
// @JSFunctor
// public interface AjaxFilterHandler extends JSObject {
// 
// 	public abstract JSObject apply(JSObject data, String dataType);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxSuccessHandler.java
// @JSFunctor
// public interface AjaxSuccessHandler<T extends JSObject> extends JSObject {
// 
// 	void onSuccess(T data, JSString textStatus, JQueryXHR jqXHR);
// 
// }
// 
// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/handler/AjaxXhrFunctionHandler.java
// public interface AjaxXhrFunctionHandler extends JSObject {
// 
//     JSFunction onXhr();
// 
// }
// 
// Path: utils/src/main/java/de/iterable/teavm/utils/functor/JSFunctor0.java
// @JSFunctor
// public interface JSFunctor0<R extends JSObject> extends JSFunctorBase{
// 
// 	public R apply();
// 
// }
// 
// Path: utils/src/main/java/de/iterable/teavm/utils/jso/JSDictonary.java
// public abstract class JSDictonary implements JSObject {
// 
//     private JSDictonary() {
//     }
// 
//     @JSIndexer
//     public abstract <V extends JSObject> V get(String key);
// 
//     @JSIndexer
//     public abstract <V extends JSObject> void put(String key, V value);
// 
//     public <V extends JSObject> JSDictonary with(String key, V value) {
//         this.put(key, value);
//         return this;
//     }
// 
//     public JSDictonary with(String key, String value) {
//         return this.with(key, JSString.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, JSDictonary value) {
//         return this.with(key, (JSObject) value);
//     }
// 
//     public JSDictonary with(String key, Integer value) {
//         return this.with(key, JSNumber.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, Float value) {
//         return this.with(key, JSNumber.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, Double value) {
//         return this.with(key, JSNumber.valueOf(value));
//     }
// 
//     public JSDictonary with(String key, Boolean value) {
//         return this.with(key, JSBoolean.valueOf(value));
//     }
// 
//     public JSObject remove(String key) {
//         if (JSObjectUtils.hasOwnProperty(this, key)) {
//             final JSObject value = get(key);
//             JSObjectUtils.delete(this, key);
//             return value;
//         }
//         return null;
//     }
// 
//     public String[] keys() {
//         return JSObjectUtils.keys(this);
//     }
// 
//     public boolean has(String key) {
//         return JSObjectUtils.hasOwnProperty(this, key);
//     }
// 
//     public static <V extends JSObject> JSDictonary create() {
//         return JSObjectUtils.create();
//     }
// 
// }


// Path: core/src/main/java/de/iterable/teavm/jquery/ajax/JQueryAjaxSettingsObject.java
import org.teavm.jso.JSBody;
import org.teavm.jso.JSObject;
import org.teavm.jso.JSProperty;
import org.teavm.jso.core.JSArray;
import org.teavm.jso.core.JSString;
import de.iterable.teavm.jquery.ajax.handler.AjaxBeforeSendHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxCompleteHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxErrorHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxFilterHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxSuccessHandler;
import de.iterable.teavm.jquery.ajax.handler.AjaxXhrFunctionHandler;
import de.iterable.teavm.utils.functor.JSFunctor0;
import de.iterable.teavm.utils.jso.JSDictonary;

    public final native void setContents(JSDictonary contents);

    @JSProperty
    public final native void setConverters(JSDictonary converters);

    @JSProperty
    public abstract void setCrossDomain(boolean crossDomain);

    @JSProperty
    public abstract void setData(JSDictonary data);

    @JSProperty
    public abstract void setData(JSArray<JSObject> data);

    @JSProperty
    public abstract void setData(String data);

    @JSProperty
    public abstract void setDataFilter(AjaxFilterHandler filter);

    @JSProperty
    public abstract void setDataType(String dataType);

    @JSProperty("error")
    public abstract void setErrorHandler(AjaxErrorHandler handler);

    @JSProperty
    public abstract void setGlobal(boolean isGlobal);

    @JSProperty
    public final native void setHeaders(JSDictonary headers);