import { FirebaseApp } from "firebase/app"; import { ProjectSubscriptionData, ProjectSubscriptionPlan } from "../types"; import { AppCheckOptions } from "@firecms/firebase"; export type TypesenseSearchConfig = { enabled: boolean; region: string; extensionInstanceId: string; collections?: string[]; }; export type ProjectConfig = { projectId: string; logo?: string; uploadLogo: (file: File) => Promise; projectName?: string; updateProjectName: (name: string) => Promise; configLoading: boolean; configError?: Error; clientFirebaseConfig?: Record; clientFirebaseMissing?: boolean; serviceAccountMissing?: boolean; subscriptionPlan?: ProjectSubscriptionPlan; subscriptionData?: ProjectSubscriptionData; trialValidUntil?: Date; isTrialOver: boolean; subscriptionStatus?: object; subscriptionSource?: "stripe" | "gcp_marketplace"; isGCPMarketplace: boolean; customizationRevision?: string; localTextSearchEnabled: boolean; updateLocalTextSearchEnabled: (allow: boolean) => Promise; typesenseSearchConfig?: TypesenseSearchConfig; updateTypesenseSearchConfig: (config: TypesenseSearchConfig | null) => Promise; primaryColor?: string; secondaryColor?: string; updatePrimaryColor: (color?: string) => void; updateSecondaryColor: (color?: string) => void; blocked: boolean; defaultLocale?: string; updateDefaultLocale: (locale: string) => Promise; creationType?: "new" | "existing"; appCheck?: AppCheckOptions; serializedAppCheck: SerializedAppCheckOptions | null; updateAppCheck: (appCheck: SerializedAppCheckOptions | null) => Promise; historyDefaultEnabled: boolean; updateHistoryDefaultEnabled: (enabled: boolean) => Promise; updateSurveyData: (surveyData: Record) => Promise; }; interface ProjectConfigParams { backendFirebaseApp?: FirebaseApp; projectId: string; } export declare function useBuildProjectConfig({ backendFirebaseApp, projectId, }: ProjectConfigParams): ProjectConfig; export interface SerializedAppCheckOptions { provider: "recaptcha_v3" | "recaptcha_enterprise"; siteKey: string; isTokenAutoRefreshEnabled?: boolean; debugToken?: string; forceRefresh?: boolean; } export {};