export interface Profile { userId: number; firstName: string; middleName: string | null; lastName: string; avatar: string | null; } export interface IProfileClient { getMyProfile(): Promise; getProfile(userId: number): Promise; getOrCreateProfile(profileData: Profile): Promise; createProfile(profileData: Profile): Promise; } export interface ModuleOptions { baseUrl: string; timeout?: number; retries?: number; useMock?: boolean; accessToken?: string; } export interface ModuleAsyncOptions { imports?: any[]; useFactory?: (...args: any[]) => Promise; inject?: any[]; }