// 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;
/*
 *  Copyright 2015 Jan-Felix Wittmann.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package de.iterable.teavm.jquery.ajax;



/**
*
* @author Jan-Felix Wittmann
*/
public abstract class JQueryAjaxSettingsObject implements JSObject {

    private JQueryAjaxSettingsObject() {
    }

    @JSBody(params = {}, script = "return {}")
    public static native final JQueryAjaxSettingsObject create();

    @JSProperty
    public abstract void setAccepts(JSDictonary obj);

    @JSProperty
    public abstract void setAsync(boolean isAsync);

    @JSProperty("beforeSend")
// 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;

/*
 *  Copyright 2015 Jan-Felix Wittmann.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package de.iterable.teavm.jquery.ajax;



/**
*
* @author Jan-Felix Wittmann
*/
public abstract class JQueryAjaxSettingsObject implements JSObject {

    private JQueryAjaxSettingsObject() {
    }

    @JSBody(params = {}, script = "return {}")
    public static native final JQueryAjaxSettingsObject create();

    @JSProperty
    public abstract void setAccepts(JSDictonary obj);

    @JSProperty
    public abstract void setAsync(boolean isAsync);

    @JSProperty("beforeSend")
    public abstract void setBeforeSendHandler(AjaxBeforeSendHandler handler);