import { Action as RouteAction } from '../Actions/RouterActions'; import { showLoginWarning } from '../Actions/UserSessionActions'; import { ActionThunk, EmptyAction } from '../Core/WdkMiddleware'; import { RecordInstance } from '../Utils/WdkModel'; import { PreferenceScope, User, UserPredicate, UserPreferences } from '../Utils/WdkUser'; import { UserProfileFormData } from '../StoreModules/UserProfileStoreModule'; import { InferType } from 'prop-types'; export declare type Action = UserUpdateAction | PreferenceUpdateAction | PreferencesUpdateAction | ProfileFormUpdateAction | ProfileFormSubmissionStatusAction | ClearRegistrationFormAction | PasswordFormUpdateAction | PasswordFormSubmissionStatusAction | ResetPasswordUpdateEmailAction | ResetPasswordSubmissionStatusAction | BasketStatusLoadingAction | BasketStatusReceivedAction | BasketStatusErrorAction | FavoritesStatusErrorAction | FavoritesStatusReceivedAction | FavoritesStatusLoadingAction; declare type ShowLoginModalAction = InferType; export declare const USER_UPDATE = "user/user-update"; export declare type UserUpdateAction = { type: typeof USER_UPDATE; payload: { user: User; }; }; export declare function userUpdate(user: User): UserUpdateAction; export declare const PREFERENCE_UPDATE = "user/preference-update"; export declare type PreferenceUpdateAction = { type: typeof PREFERENCE_UPDATE; payload: UserPreferences; }; export declare function preferenceUpdate(preferences: UserPreferences): PreferenceUpdateAction; export declare const PREFERENCES_UPDATE = "user/preferences-update"; export declare type PreferencesUpdateAction = { type: typeof PREFERENCES_UPDATE; payload: UserPreferences; }; export declare function preferencesUpdate(preferences: UserPreferences): PreferencesUpdateAction; export declare const PROFILE_FORM_UPDATE = "user/profile-form-update"; export declare type ProfileFormUpdateAction = { type: typeof PROFILE_FORM_UPDATE; payload: { userFormContent: UserProfileFormData; }; }; export declare function profileFormUpdate(userFormContent: UserProfileFormData): ProfileFormUpdateAction; export declare const PROFILE_FORM_SUBMISSION_STATUS = "user/profile-form-submission-status"; export declare type FormStatus = 'new' | 'modified' | 'pending' | 'success' | 'error'; export declare type ProfileFormSubmissionStatusAction = { type: typeof PROFILE_FORM_SUBMISSION_STATUS; payload: { formStatus: FormStatus; formData: UserProfileFormData; errorMessage: string | undefined; }; }; export declare function profileFormSubmissionStatus(formStatus: FormStatus, formData: UserProfileFormData, errorMessage?: string): ProfileFormSubmissionStatusAction; export declare const CLEAR_REGISTRATION_FORM = "user/clear-registration-form"; export declare type ClearRegistrationFormAction = { type: typeof CLEAR_REGISTRATION_FORM; }; export declare function clearRegistrationForm(): ClearRegistrationFormAction; export declare const PASSWORD_FORM_UPDATE = "user/password-form-update"; export declare type PasswordFormUpdateAction = { type: typeof PASSWORD_FORM_UPDATE; payload: { oldPassword: string; newPassword: string; confirmPassword: string; }; }; export declare function passwordFormUpdate(payload: { oldPassword: string; newPassword: string; confirmPassword: string; }): PasswordFormUpdateAction; export declare const PASSWORD_FORM_SUBMISSION_STATUS = "user/password-form-submission-status"; export declare type PasswordFormSubmissionStatusAction = { type: typeof PASSWORD_FORM_SUBMISSION_STATUS; payload: { formStatus: FormStatus; errorMessage: string | undefined; }; }; export declare function passwordFormSubmissionStatus(formStatus: FormStatus, errorMessage?: string): PasswordFormSubmissionStatusAction; export declare const RESET_PASSWORD_UPDATE_EMAIL = "user/reset-password-email-update"; export declare type ResetPasswordUpdateEmailAction = { type: typeof RESET_PASSWORD_UPDATE_EMAIL; payload: string; }; export declare function resetPasswordUpdateEmail(email: string): ResetPasswordUpdateEmailAction; export declare const RESET_PASSWORD_SUBMISSION_STATUS = "user/reset-password-submission-status"; export declare type ResetPasswordSubmissionStatusAction = { type: typeof RESET_PASSWORD_SUBMISSION_STATUS; payload: { success: boolean; message?: string; }; }; export declare function resetPasswordSubmissionStatus(message?: string): ResetPasswordSubmissionStatusAction; export declare const BASKET_STATUS_LOADING = "user/basket-status-loading"; export declare type BasketStatusLoadingAction = { type: typeof BASKET_STATUS_LOADING; payload: { record: RecordInstance; }; }; export declare function basketStatusLoading(record: RecordInstance): BasketStatusLoadingAction; export declare const BASKET_STATUS_RECEIVED = "user/basket-status/received"; export declare type BasketStatusReceivedAction = { type: typeof BASKET_STATUS_RECEIVED; payload: { record: RecordInstance; status: boolean; }; }; export declare function basketStatusReceived(record: RecordInstance, status: boolean): BasketStatusReceivedAction; export declare const BASKET_STATUS_ERROR = "user/basket-status-error"; export declare type BasketStatusErrorAction = { type: typeof BASKET_STATUS_ERROR; payload: { record: RecordInstance; error: Error; }; }; export declare function basketStatusError(record: RecordInstance, error: Error): BasketStatusErrorAction; export declare const FAVORITES_STATUS_LOADING = "user/favorites-status-loading"; export declare type FavoritesStatusLoadingAction = { type: typeof FAVORITES_STATUS_LOADING; payload: { record: RecordInstance; }; }; export declare function favoritesStatusLoading(record: RecordInstance): FavoritesStatusLoadingAction; export declare const FAVORITES_STATUS_RECEIVED = "user/favorites-status-received"; export declare type FavoritesStatusReceivedAction = { type: typeof FAVORITES_STATUS_RECEIVED; payload: { record: RecordInstance; id?: number; }; }; export declare function favoritesStatusReceived(record: RecordInstance, id?: number): FavoritesStatusReceivedAction; export declare const FAVORITES_STATUS_ERROR = "user/favorites-status-error"; export declare type FavoritesStatusErrorAction = { type: typeof FAVORITES_STATUS_ERROR; payload: { record: RecordInstance; error: Error; }; }; export declare function favoritesStatusError(record: RecordInstance, error: Error): FavoritesStatusErrorAction; /** * Fetches the current user. If the user passes the predicate, transitions to * the passed path. Optional external param lets caller specify if path is * internal or external, defaulting to false (internal). */ export declare function conditionallyTransition(test: UserPredicate, path: string, external?: boolean): ActionThunk; /** * Merge supplied key-value pair with user preferences and update * on the server. */ export declare function updateUserPreference(scope: PreferenceScope, key: string, value: string): ActionThunk; export declare function updateUserPreferences(newPreferences: UserPreferences): ActionThunk; /** Save user profile to DB */ declare type SubmitProfileFormType = ActionThunk; export declare function submitProfileForm(formData: UserProfileFormData): SubmitProfileFormType; /** Register user */ declare type SubmitRegistrationFormType = ActionThunk; export declare function submitRegistrationForm(formData: UserProfileFormData): SubmitRegistrationFormType; /** Save new password to DB */ export declare function savePassword(oldPassword: string, newPassword: string): ActionThunk; export declare function submitPasswordReset(email: string): ActionThunk; declare type BasketAction = BasketStatusLoadingAction | BasketStatusErrorAction | BasketStatusReceivedAction; /** * @param {Record} record */ export declare function loadBasketStatus(record: RecordInstance, recordClassUrlSegment: string): ActionThunk; /** * @param {User} user * @param {Record} record * @param {Boolean} status */ export declare function updateBasketStatus(record: RecordInstance, recordClassUrlSegment: string, status: boolean): ActionThunk; declare type FavoriteAction = FavoritesStatusErrorAction | FavoritesStatusLoadingAction | FavoritesStatusReceivedAction; /** Create favorites action */ /** * @param {Record} record */ export declare function loadFavoritesStatus(record: RecordInstance, recordClassUrlSegment: string): ActionThunk; export declare function removeFavorite(record: RecordInstance, favoriteId: number): ActionThunk; export declare function addFavorite(record: RecordInstance, recordClassUrlSegment: string): ActionThunk; export {}; //# sourceMappingURL=UserActions.d.ts.map