import { ApplicationVerifier, Auth, AuthCredential, AuthProvider, Dependencies, MultiFactorError, NextOrObserver, Persistence, PopupRedirectResolver, User } from 'firebase/auth'; import { DefaultReactFirebaseHooksOptions } from './Context'; import { DefaultConfirmPasswordResetPayload, DefaultConnectAuthEmulatorOptions, DefaultOptionsOnlyAuth, DefaultSendPasswordResetEmailPayload, DefaultSendSignInLinkToEmailPayload } from './types'; /** * @description payload for {@link firebaseCreateUserWithEmailAndPassword} and {@link firebaseSignInWithEmailAndPassword} method. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultSignInWithEmailAndPasswordPayload */ export interface DefaultSignInWithEmailAndPasswordPayload { /** * @description second parameter of either {@link firebaseCreateUserWithEmailAndPassword} or {@link firebaseSignInWithEmailAndPassword} method. * @author Achmad Kurnianto * @date 01/08/2024 * @type {string} * @memberof DefaultSignInWithEmailAndPasswordPayload */ email: string; /** * @description third parameter of either {@link firebaseCreateUserWithEmailAndPassword} or {@link firebaseSignInWithEmailAndPassword} method. * @author Achmad Kurnianto * @date 01/08/2024 * @type {string} * @memberof DefaultSignInWithEmailAndPasswordPayload */ password: string; } /** * @description payload for {@link firebaseSignInWithEmailLink} method * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultSignInWithEmailLinkPayload */ export interface DefaultSignInWithEmailLinkPayload { /** * @description second parameter of {@link firebaseSignInWithEmailLink} method * @author Achmad Kurnianto * @date 01/08/2024 * @type {string} * @memberof DefaultSignInWithEmailLinkPayload */ email: string; /** * @description third parameter of {@link firebaseSignInWithEmailLink} method * @default undefined * @author Achmad Kurnianto * @date 01/08/2024 * @type {string} * @memberof DefaultSignInWithEmailLinkPayload */ emailLink?: string; } /** * @description payload for {@link firebaseSignInWithPhoneNumber} method. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultSignInWithPhoneNumberPayload */ export interface DefaultSignInWithPhoneNumberPayload { /** * @description second parameter of {@link firebaseSignInWithPhoneNumber} method. * @author Achmad Kurnianto * @date 01/08/2024 * @type {string} * @memberof DefaultSignInWithPhoneNumberPayload */ phoneNumber: string; /** * @description third parameter of {@link firebaseSignInWithPhoneNumber} method. * @author Achmad Kurnianto * @date 01/08/2024 * @type {ApplicationVerifier} * @memberof DefaultSignInWithPhoneNumberPayload */ appVerifier: ApplicationVerifier; } /** * @description payload for {@link firebaseSignInWithPopup} and {@link firebaseSignInWithRedirect} method * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultSignInWithPopupPayload */ export interface DefaultSignInWithPopupPayload { /** * @description second parameter of {@link firebaseSignInWithPopup} method * @author Achmad Kurnianto * @date 01/08/2024 * @type {AuthProvider} * @memberof DefaultSignInWithPopupPayload */ provider: AuthProvider; /** * @description third parameter of {@link firebaseSignInWithPopup} method * @default undefined * @author Achmad Kurnianto * @date 01/08/2024 * @type {PopupRedirectResolver} * @memberof DefaultSignInWithPopupPayload */ resolver?: PopupRedirectResolver; } /** * @description payload for {@link firebaseSignInWithRedirect} method * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultSignInWithRedirectPayload * @extends {DefaultSignInWithPopupPayload} */ export interface DefaultSignInWithRedirectPayload extends DefaultSignInWithPopupPayload { } /** * @description get firebase auth instance for your react app * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template Options * @param {Options} [options] * @returns {*} {Auth} */ export declare function useFirebaseAuth(options?: Options): Auth; /** * @description type data used in {@link useInitializeAuth} method * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultUseInitializeAuthOptions * @extends {DefaultReactFirebaseHooksOptions} */ export interface DefaultUseInitializeAuthOptions extends DefaultReactFirebaseHooksOptions { /** * @description second parameter of {@link initializeAuth} method * @author Achmad Kurnianto * @date 01/08/2024 * @type {Dependencies} * @memberof DefaultUseInitializeAuthOptions */ dependencies?: Dependencies; } /** * @description create your own firebase auth instance with {@link initializeAuth} under the hood. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template Options * @param {Options} [options] * @returns {*} */ export declare function useInitializeAuth(options?: Options): Auth; /** * @description type data options for {@link useBeforeAuthStateChanged} hooks * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultUseBeforeAuthStateChangedOptions * @extends {DefaultReactFirebaseHooksOptions} * @extends {DefaultOptionsOnlyAuth} */ export interface DefaultUseBeforeAuthStateChangedOptions extends DefaultReactFirebaseHooksOptions, DefaultOptionsOnlyAuth { /** * @description third parameter of {@link beforeAuthStateChanged} method * @default undefined * @author Achmad Kurnianto * @date 01/08/2024 * @memberof DefaultUseBeforeAuthStateChangedOptions */ onAbort?: () => void; } /** * @description apply {@link beforeAuthStateChanged} method easily in your react app * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template Options * @param {((user: User | null) => void | Promise)} callback second parameter of {@link beforeAuthStateChanged} method * @param {Options} [options] */ export declare function useBeforeAuthStateChanged(callback: (user: User | null) => void | Promise, options?: Options): void; /** * @description type data options for {@link useOnAuthStateChanged} and {@link useOnIdTokenChanged} hooks * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultUseOnAuthStateChangedOptions * @extends {DefaultReactFirebaseHooksOptions} * @extends {DefaultOptionsOnlyAuth} */ export interface DefaultUseOnAuthStateChangedOptions extends DefaultReactFirebaseHooksOptions, DefaultOptionsOnlyAuth { } /** * @description easily use {@link onAuthStateChanged} method inside your react app * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template Options * @param {NextOrObserver} userObserver second parameter of {@link onAuthStateChanged} method. * @param {Options} [options] */ export declare function useOnAuthStateChanged(userObserver: NextOrObserver, options?: Options): void; /** * @description data type options for {@link useOnIdTokenChanged} hooks. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultUseOnIdTokenChangedOptions * @extends {DefaultUseOnAuthStateChangedOptions} */ export interface DefaultUseOnIdTokenChangedOptions extends DefaultUseOnAuthStateChangedOptions { } /** * @description easily use {@link onIdTokenChanged} method into your react app. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template Options * @param {NextOrObserver} userObserver second parameter of {@link onIdTokenChanged} method * @param {Options} [options] */ export declare function useOnIdTokenChanged(userObserver: NextOrObserver, options?: Options): void; /** * @description data type options for {@link useFirebaseAuthMethods} hooks * @author Achmad Kurnianto * @date 01/08/2024 * @export * @interface DefaultUseFirebaseAuthMethodsOptions * @extends {DefaultReactFirebaseHooksOptions} * @extends {DefaultOptionsOnlyAuth} */ export interface DefaultUseFirebaseAuthMethodsOptions extends DefaultReactFirebaseHooksOptions, DefaultOptionsOnlyAuth { } /** * @description easily get methods which depends on firebase auth instance. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template Options * @param {Options} [opts] * @returns {*} */ export declare function useFirebaseAuthMethods(opts?: Options): { applyActionCode: (verificationCode: string) => Promise; checkActionCode: (verificationCode: string) => Promise; createUserWithEmailAndPassword: (payload: EmailAndPasswordPayload) => Promise; confirmPasswordReset: (payload: ConfirmPasswordResetPayload) => Promise; connectAuthEmulator: (options: ConnectAuthEmulatorOptions) => Promise; getMultiFactorResolver: (error: MultiFactorError) => import('firebase/auth').MultiFactorResolver; getRedirectResult: (resolver?: PopupRedirectResolver) => Promise; initializeRecaptchaConfig: () => Promise; isSignInWithEmailLink: (emailLink: string) => boolean; revokeAccessToken: (token: string) => Promise; sendPasswordResetEmail: (payload: Payload) => Promise; sendSignInLinkToEmail: (payload: Payload) => Promise; setPersistence: (persistence: Persistence) => Promise; signInAnonymously: () => Promise; signInWithEmailLink: (payload: SignInWithEmailLinkPayload) => Promise; signInWithCredential: (credential: AuthCredential) => Promise; signInWithCustomToken: (customToken: string) => Promise; signInWithEmailAndPassword: (payload: EmailAndPasswordPayload) => Promise; signInWithPhoneNumber: (payload: SignInWithPhoneNumberPayload) => Promise; signInWithPopup: (payload: SignInWithPopupPayload) => Promise; signInWithRedirect: (payload: Payload) => Promise; signOut: () => Promise; updateCurrentUser: (user?: User | null) => Promise; validatePassword: (password: string) => Promise; };