import { FirebaseApp, FirebaseAppSettings, FirebaseOptions } from 'firebase/app'; import { Context, PropsWithChildren, ReactElement } from 'react'; export type FirebaseContextType = Context; export declare const FirebaseContext: Context; export declare const FirebaseConsumer: import('react').Consumer; /** * @description props for {@link FirebaseProvider} component * @author Achmad Kurnianto * @date 30/07/2024 * @export * @interface FirebaseProviderProps * @extends {PropsWithChildren<{ * options: FirebaseOptions; * context?: FirebaseContextType; * name?: string; * appSettings?: FirebaseAppSettings; * deleteInstanceWhenUnmount?: boolean; * }>} * @template App */ export type FirebaseProviderProps = PropsWithChildren<{ options: FirebaseOptions; context?: FirebaseContextType; name?: string; appSettings?: FirebaseAppSettings; /** * @description whether your firebase instance deleted or not when unmounted. * @default true * @author Achmad Kurnianto * @date 01/08/2024 * @type {boolean} */ deleteInstanceWhenUnmount?: boolean; }>; /** * @description react component with embedded built-in firebase instance. * you can add your firebase configuration through {@link options} props. * you can also use your custom context through {@link context} props. * @author Achmad Kurnianto * @date 01/08/2024 * @export * @template PropType * @param {PropType} { * children, * options, * name, * appSettings, * context: Context = FirebaseContext, * deleteInstanceWhenUnmount = true, * } * @returns {*} {ReactElement} */ export declare function FirebaseProvider({ children, options, name, appSettings, context, deleteInstanceWhenUnmount, }: PropType): ReactElement; /** * @description options for {@link useFirebaseApp} * @author Achmad Kurnianto * @date 30/07/2024 * @export * @interface DefaultReactFirebaseHooksOptions */ export interface DefaultReactFirebaseHooksOptions { /** * @description used context for {@link FirebaseProvider} component * Default value is {@link FirebaseContext} * @author Achmad Kurnianto * @date 01/08/2024 * @type {FirebaseContextType} * @memberof DefaultReactFirebaseHooksOptions */ context?: FirebaseContextType; } /** * @description hooks to get firebase app instance * @author Achmad Kurnianto * @date 30/07/2024 * @export * @param {FirebaseContextType} [context=FirebaseContext] * @returns {*} {FirebaseApp} */ export declare function useFirebaseApp(context?: FirebaseContextType): FirebaseApp;