export interface TFormbricks {
    /**
     * @description Initializes the Formbricks SDK.
     * @param setupConfig - The configuration for the Formbricks SDK.
     */
    setup: (setupConfig: TSetupConfig) => Promise<void>;
    /**
     * @description Sets the email of the user.
     * @param email - The email of the user.
     */
    setEmail: (email: string) => Promise<void>;
    /**
     * @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<void>;
    /**
     * @description Sets multiple attributes of the user.
     * @param attributes - The attributes to set.
     */
    setAttributes: (attributes: Record<string, string>) => Promise<void>;
    /**
     * @description Sets the language of the user.
     * @param language - The language of the user.
     */
    setLanguage: (language: string) => Promise<void>;
    /**
     * @description Sets the user ID.
     * @param userId - The user ID to set.
     */
    setUserId: (userId: string) => Promise<void>;
    /**
     * @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<void>;
    /**
     * @description Tracks an event.
     * @param code - The code of the event.
     * @param properties - The properties of the event.
     */
    track: (code: string, properties?: {
        hiddenFields: Record<string | number, string | number | string[]>;
    }) => Promise<void>;
    /**
     * @description Logs out the user
     */
    logout: () => Promise<void>;
    /**
     * @description Registers a route change.
     */
    registerRouteChange: () => Promise<void>;
}
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;
};
