import type { AdapterAccount } from 'next-auth/adapters'; import { DeepPartial } from 'utility-types'; import { UserGuide, UserInitializationState, UserPreference } from '@/types/user'; import { UserSettings } from '@/types/user/settings'; export interface IUserService { getUserRegistrationDuration: () => Promise<{ createdAt: string; duration: number; updatedAt: string; }>; getUserSSOProviders: () => Promise; getUserState: () => Promise; resetUserSettings: () => Promise; unlinkSSOProvider: (provider: string, providerAccountId: string) => Promise; updateAvatar: (avatar: string) => Promise; updateGuide: (guide: Partial) => Promise; updatePreference: (preference: Partial) => Promise; updateUserSettings: (value: DeepPartial, signal?: AbortSignal) => Promise; }