import { Observable } from 'rxjs'; import { CsUserServiceConfig } from '../../../index'; import { Consent, User, UserDeclaration, UserFeedCategory, UserFeedEntry, UserFeedStatus } from '../../../models'; export interface CheckUserExistsResponse { exists: boolean; id?: string; userId?: string; name?: string; managedBy?: string; } export interface UpdateConsentResponse { consent: { userId: string; }; message?: string; } export interface ReadConsentResponse { consents?: Consent[]; } export interface CsUpdateUserFeedRequest { status?: UserFeedStatus; } export interface CsUpdateUserDeclarationsResponse { } export interface CsUpdateUserFeedResponse { } export interface CsDeleteUserFeedResponse { } export interface CsProfileDetailsRequest { userId: string; requiredFields: string[]; } export interface CsProfileUpdateRequest { userId: string; phone?: string; email?: string; phoneVerified?: boolean; emailVerified?: boolean; profileLocation?: { code: string; type: string; }[]; firstName?: string; lastName?: string; framework?: { [key: string]: any; }; profileSummary?: string; recoveryEmail?: string; recoveryPhone?: string; externalIds?: { id: string; operation: string; idType: string; provider: string; }[]; profileUserType?: { type?: string; subType?: string; }; dob?: string; } export interface CsProfileUpdateResponse { response: string; errors: Array; } export interface CsUserService { checkUserExists(matching: { key: string; value: string; }, captchaResponse?: { token: string; app?: string; }, config?: CsUserServiceConfig): Observable; updateUserDeclarations(declarations: UserDeclaration[], config?: CsUserServiceConfig): Observable; updateConsent(userConsent: Consent, config?: CsUserServiceConfig): Observable; getConsent(userConsent: Consent, config?: CsUserServiceConfig): Observable; getUserFeed(uid: string, config?: CsUserServiceConfig): Observable; updateUserFeedEntry(uid: string, feedEntryId: string, category: UserFeedCategory, request: CsUpdateUserFeedRequest, config?: CsUserServiceConfig): Observable; deleteUserFeedEntry(uid: string, feedEntryId: string, category: UserFeedCategory, config?: CsUserServiceConfig): Observable; getProfileDetails(profileDetailsRequest: CsProfileDetailsRequest, config?: CsUserServiceConfig): Observable; updateProfile(profileUpdateRequest: CsProfileUpdateRequest, config?: CsUserServiceConfig): Observable; }