export interface TFormbricks { /** * @description Initializes the Formbricks SDK. * @param setupConfig - The configuration for the Formbricks SDK. */ setup: (setupConfig: TSetupConfig) => Promise; /** * @description Sets the email of the user. * @param email - The email of the user. */ setEmail: (email: string) => Promise; /** * @description Sets an attribute of the user. * @param key - The key of the attribute. * @param value - The value of the attribute. */ setAttribute: (key: string, value: string) => Promise; /** * @description Sets multiple attributes of the user. * @param attributes - The attributes to set. */ setAttributes: (attributes: Record) => Promise; /** * @description Sets the language of the user. * @param language - The language of the user. */ setLanguage: (language: string) => Promise; /** * @description Sets the user ID. * @param userId - The user ID to set. */ setUserId: (userId: string) => Promise; /** * @description Sets the CSP nonce for inline styles * @param nonce - The CSP nonce value (without 'nonce-' prefix), or undefined to clear */ setNonce: (nonce: string | undefined) => Promise; /** * @description Tracks an event. * @param code - The code of the event. * @param properties - The properties of the event. */ track: (code: string, properties?: { hiddenFields: Record; }) => Promise; /** * @description Logs out the user */ logout: () => Promise; /** * @description Registers a route change. */ registerRouteChange: () => Promise; } export type TSetupConfig = { workspaceId: string; /** * @deprecated use workspaceId instead, environmentId will be removed in a future version */ environmentId?: string; appUrl: string; } | { workspaceId?: string; /** * @deprecated use workspaceId instead, environmentId will be removed in a future version */ environmentId: string; appUrl: string; };