// Path: x-gwt-firebase/src/main/java/com/github/spirylics/xgwt/firebase/auth/Auth.java
// @SuppressWarnings("ALL")
// @JsType(isNative = true, namespace = "firebase.auth", name = "Auth")
// public class Auth {
// 
//     public native Promise<Void, Error> applyActionCode(String code);
// 
//     public native Promise<ActionCodeInfo, Error> checkActionCode(String code);
// 
//     public native Promise<Void, Error> confirmPasswordReset(String code, String newPassword);
// 
//     public native Promise<UserCredential, Error> signInWithPopup(AuthProvider authProvider);
// 
//     public native Promise<User, Error> signInWithEmailAndPassword(String email, String password);
// 
//     public native Promise<User, Error> signInAnonymously();
// 
//     public native Promise<Void, Error> signOut();
// 
//     public native Promise<User, Error> createUserWithEmailAndPassword(String email, String password);
// 
//     public native Promise<String[], Error> fetchProvidersForEmail(String email);
// 
//     public native Promise<Void, Error> sendPasswordResetEmail(String email);
// 
//     public native Promise<User, Error> signInWithCredential(AuthCredential authCredential);
// 
//     public native Promise<User, Error> signInWithCustomToken(String token);
// 
//     public native Promise<Void, Error> signInWithRedirect(AuthProvider authProvider);
// 
//     public native Promise<String, Error> verifyPasswordResetCode(String code);
// 
// 
//     @JsProperty
//     public native User getCurrentUser();
// 
//     public native Fn.NoArg onAuthStateChanged(Fn.Arg<User> fn);
// 
//     @JsOverlay
//     public final boolean isAuth() {
//         return getCurrentUser() != null;
//     }
// 
//     @JsOverlay
//     public final AuthRegistration handleAuth(final Fn.Arg<User> fn) {
//         return new AuthRegistration(this, fn);
//     }
// }
// 
// Path: x-gwt-firebase/src/main/java/com/github/spirylics/xgwt/firebase/database/Database.java
// @SuppressWarnings("ALL")
// @JsType(isNative = true, namespace = "firebase.database", name = "Database")
// public interface Database {
// 
//     Reference ref();
// 
//     Reference ref(String path);
// 
// }


import com.github.spirylics.xgwt.firebase.auth.Auth;
import com.github.spirylics.xgwt.firebase.database.Database;
import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsType;
import static jsinterop.annotations.JsPackage.GLOBAL;
package com.github.spirylics.xgwt.firebase;



@SuppressWarnings("ALL")
@JsType(isNative = true, namespace = "firebase.app", name = "App")
public class Firebase {

    @JsMethod(namespace = "firebase")
    public static native Firebase initializeApp(Config config);

    public native Auth auth();

// Path: x-gwt-firebase/src/main/java/com/github/spirylics/xgwt/firebase/auth/Auth.java
// @SuppressWarnings("ALL")
// @JsType(isNative = true, namespace = "firebase.auth", name = "Auth")
// public class Auth {
// 
//     public native Promise<Void, Error> applyActionCode(String code);
// 
//     public native Promise<ActionCodeInfo, Error> checkActionCode(String code);
// 
//     public native Promise<Void, Error> confirmPasswordReset(String code, String newPassword);
// 
//     public native Promise<UserCredential, Error> signInWithPopup(AuthProvider authProvider);
// 
//     public native Promise<User, Error> signInWithEmailAndPassword(String email, String password);
// 
//     public native Promise<User, Error> signInAnonymously();
// 
//     public native Promise<Void, Error> signOut();
// 
//     public native Promise<User, Error> createUserWithEmailAndPassword(String email, String password);
// 
//     public native Promise<String[], Error> fetchProvidersForEmail(String email);
// 
//     public native Promise<Void, Error> sendPasswordResetEmail(String email);
// 
//     public native Promise<User, Error> signInWithCredential(AuthCredential authCredential);
// 
//     public native Promise<User, Error> signInWithCustomToken(String token);
// 
//     public native Promise<Void, Error> signInWithRedirect(AuthProvider authProvider);
// 
//     public native Promise<String, Error> verifyPasswordResetCode(String code);
// 
// 
//     @JsProperty
//     public native User getCurrentUser();
// 
//     public native Fn.NoArg onAuthStateChanged(Fn.Arg<User> fn);
// 
//     @JsOverlay
//     public final boolean isAuth() {
//         return getCurrentUser() != null;
//     }
// 
//     @JsOverlay
//     public final AuthRegistration handleAuth(final Fn.Arg<User> fn) {
//         return new AuthRegistration(this, fn);
//     }
// }
// 
// Path: x-gwt-firebase/src/main/java/com/github/spirylics/xgwt/firebase/database/Database.java
// @SuppressWarnings("ALL")
// @JsType(isNative = true, namespace = "firebase.database", name = "Database")
// public interface Database {
// 
//     Reference ref();
// 
//     Reference ref(String path);
// 
// }


// Path: x-gwt-firebase/src/main/java/com/github/spirylics/xgwt/firebase/Firebase.java
import com.github.spirylics.xgwt.firebase.auth.Auth;
import com.github.spirylics.xgwt.firebase.database.Database;
import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsType;
import static jsinterop.annotations.JsPackage.GLOBAL;

package com.github.spirylics.xgwt.firebase;



@SuppressWarnings("ALL")
@JsType(isNative = true, namespace = "firebase.app", name = "App")
public class Firebase {

    @JsMethod(namespace = "firebase")
    public static native Firebase initializeApp(Config config);

    public native Auth auth();

    public native Database database();