import { type ServerError, ServerErrorResponse, type ServerErrorResponseData } from '@dereekb/util'; import { type FirebaseError } from 'firebase/app'; /** * Client-side representation of an error originating from a Firebase Cloud Function. * * Wraps a {@link FirebaseError} with structured server error details (status, message, code) * extracted from the error's `details` property. Extends {@link ServerErrorResponse} for * consistent error handling across the application. * * Typically created via {@link convertHttpsCallableErrorToReadableError} when an `HttpsCallable` * invocation fails with a server-side error that includes structured details. * * @example * ```ts * try { * await callableFunction(data); * } catch (e) { * if (e instanceof FirebaseServerError) { * console.log(e.code, e.message, e.firebaseError.code); * } * } * ``` */ export declare class FirebaseServerError extends ServerErrorResponse { readonly firebaseError: FirebaseError; /** * Creates a {@link FirebaseServerError} from a raw {@link FirebaseError}, extracting * structured error details from the error's `details` property if available. * * @param error - the Firebase error from an `HttpsCallable` failure * @returns a new {@link FirebaseServerError} wrapping the given Firebase error with structured server error details */ static fromFirebaseError(error: FirebaseError): FirebaseServerError; constructor(firebaseError: FirebaseError, serverError: ServerError); get _error(): FirebaseError; }