import { FireCMSCloudUserWithRoles, SubscriptionType } from "../types"; import { EntityCollection } from "@firecms/core"; export type ProjectsApi = ReturnType; export type RootCollectionInfo = { path: string; databaseId?: string; }; export declare function buildProjectsApi(host: string, getBackendAuthToken: () => Promise): { createNewFireCMSProject: (projectId: string, googleAccessToken: string | undefined, serviceAccount: object | undefined, creationType: "new" | "existing" | "existing_sa", campaignParams?: Record) => Promise; createFirebaseWebapp: (projectId: string) => Promise; addSecurityRules: (projectId: string, googleAccessToken?: string, serviceAccount?: object) => Promise; createServiceAccount: (googleAccessToken: string, projectId: string, reset: boolean) => Promise; createNewUser: (projectId: string, user: FireCMSCloudUserWithRoles) => Promise; updateUser: (projectId: string, uid: string, user: FireCMSCloudUserWithRoles) => Promise; deleteUser: (projectId: string, uid: string) => Promise; getRootCollections: (projectId: string, googleAccessToken?: string, serviceAccount?: object, retries?: number) => Promise; doDelegatedLogin: (projectId: string) => Promise; createStripeNewSubscriptionLink: (props: { projectId?: string; licenseId?: string; quantity?: number; productPriceId: string; productPriceType: string; type: SubscriptionType; }) => Promise; createCloudStripeNewSubscriptionLink: (props: { projectId: string; currency: string; }) => Promise; initialCollectionsSetup: (projectId: string) => Promise; setupCollections: (projectId: string, paths: { path: string; databaseId?: string; }[]) => Promise; getStripePortalLink: () => Promise; getStripeUpdateLinkForSubscription: (subscriptionId: string, projectId?: string) => Promise; getStripeCancelLinkForSubscription: (subscriptionId: string, projectId?: string) => Promise; getStripeUpdateLinkForPaymentMethod: (subscriptionId: string, projectId?: string) => Promise; linkMarketplaceProject: (props: { gcpAccountId: string; projectId: string; }) => Promise<{ success: boolean; }>; host: string; getRemoteConfigUrl: (projectId: string, revisionId?: string) => Promise; };