import type { ShopUser, UpdatePasswordParams } from '@scayle/storefront-core'; import type { UseRpcReturn, UseRpcCacheKey } from './useRpc.js'; import type { ComputedRef } from 'vue'; /** * Extended parameters for the `useUser` composable. */ export interface ExtendedUseUserParams { /** The key used for caching the user data. Defaults to 'useUser'. */ key?: UseRpcCacheKey; /** Whether to fetch the user data immediately. Defaults to `true`. */ immediate?: boolean; /** Whether to enable lazy loading of user data. Defaults to `false`. */ lazy?: boolean; } type UseUserBaseReturn = Pick>, 'error' | 'status' | 'refresh'> & { updateUser: (payload: Partial) => Promise; updatePassword: (payload: UpdatePasswordParams) => Promise; user: ComputedRef; isLoggedIn: ComputedRef; customerType: ComputedRef<'new' | 'guest' | 'existing'>; forceRefresh: () => Promise; }; /** * Provides user information and related actions. * * This composable retrieves user data via the `getUser` RPC method and offers * functionalities to update user details, change passwords, and force-refresh user data. * It uses `useRpc` for data fetching and provides computed properties for user status, * login status, and customer type. * * The composable also handles caching of user data and allows for lazy loading * and immediate fetching based on the provided options. * * @param options Options to customize the behavior of the composable, * such as caching key, immediate fetching, and lazy loading. * * @returns A promise that resolves to an object containing user information, * update functions, and status properties. It also includes the resolved * object directly as properties. */ export declare function useUser(options?: ExtendedUseUserParams): UseUserBaseReturn & Promise; export {};