import { ISessionItem } from '@cee-eng/hydrajs/@types/api/pcm/troubleshootSession'; import { ICasePayload, ICaseResourceLink, ICepDetails, INotifiedUser } from '@cee-eng/hydrajs/@types/api/public/case'; import { IAccount } from '@cee-eng/hydrajs/@types/models/account'; import { ICaseNotificationAddresses } from '@cee-eng/hydrajs/@types/models/case'; import { IContact } from '@cee-eng/hydrajs/@types/models/contact'; import { ISolrRecommendation } from '@cee-eng/hydrajs/@types/models/solr/solr'; import { IApiResponseDetails } from '@rh-support/types/shared'; import { UserAuth } from '@rh-support/user-permissions'; import { IGraphQLCaseUpdateInput, MatchedCaseGroup } from '@rh-support/utils'; import { CaseSeverityFtsGraphQLPayload } from '../utils/caseSeverityFtsGraphQLUtils'; import { CaseReducerDispatchType, ICaseDetailsState, ICaseState } from './CaseConstNTypes'; import { SessionReducerDispatchType } from './SessionRestoreReducer'; export declare const caseReducer: (pState: ICaseState, action: any) => ICaseState; export declare const setCaseDetails: (dispatch: CaseReducerDispatchType, caseState: Partial) => void; export declare const setCaseState: (dispatch: CaseReducerDispatchType, caseState: Partial) => void; export declare const setNotifiedUser: (dispatch: CaseReducerDispatchType, selectedNotificationContacts: IContact[]) => void; export declare const submitCase: (dispatch: CaseReducerDispatchType, sessionRestoreDispatch: SessionReducerDispatchType, caseDetails: ICaseState, isCaseCreate: boolean, errorMessage500: string | JSX.Element, loggedInUserSsoUsername: string, isSecureSupport: boolean, isResubmit: boolean, isCreatingCaseFlow: boolean, sessionItem?: ISessionItem, apolloClient?: { mutate: (options: any) => Promise; }, traditionalSupportAgreed?: boolean) => Promise; /** * Update case details if there is HTTP 500 error while submitting case * @param dispatch CaseReducerDispatchType * @param error Error */ export declare const updateCaseCreationErrorStatusOnError: (dispatch: CaseReducerDispatchType, error: any) => void; /** * Update `caseCreation500ErrorStatus` status * @param dispatch CaseReducerDispatchType * @param errorStatus Boolean */ export declare const updateCaseCreationErrorStatus: (dispatch: CaseReducerDispatchType, errorStatus: boolean) => void; export declare const postRemoteSessionRequest: (dispatch: CaseReducerDispatchType, caseNumber: string) => Promise; export declare const postCaseCreationProcessing: (isSecureSupport: boolean, dispatch: CaseReducerDispatchType, sessionRestoreDispatch: SessionReducerDispatchType, caseNumber: string, caseDetails: ICaseState, sessionItem?: ISessionItem, apolloClient?: { mutate: (options: any) => Promise; }, caseSfId?: string) => Promise; /** Links selected labels to a newly created case. Failures are non-blocking. */ export declare const postCaseLabelLinks: (apolloClient: { mutate: (options: any) => Promise; }, caseSfId: string, labelIds: string[]) => Promise; export declare const resolveSession: (sessionRestoreDispatch: SessionReducerDispatchType, sessionItem: ISessionItem, caseNumber: string) => Promise; export declare const postCepDetails: (dispatch: CaseReducerDispatchType, caseNumber: string, cepDetails: ICepDetails) => Promise; export declare const setCaseRecommendations: (dispatch: CaseReducerDispatchType, docs: ISolrRecommendation[], oldRecommendations: ICaseResourceLink[]) => void; export declare const setDetectedLanguage: (dispatch: CaseReducerDispatchType, subject: string, description: string) => Promise; export declare const submitNotifiedUser: (dispatch: CaseReducerDispatchType, caseNumber: string, caseDetails: Partial) => Promise; export declare const deleteNotifiedUsers: (dispatch: CaseReducerDispatchType, caseNumber: string, ssoUsernames: string[]) => Promise; export declare const addingNotifiedUsers: (dispatch: CaseReducerDispatchType, caseNumber: string, addedUsers: IContact[]) => Promise; export declare const clearSelectedAccount: (dispatch: CaseReducerDispatchType) => void; export declare const setCaseAccountNumber: (dispatch: CaseReducerDispatchType, accountNumber: string, isLoggedInUsersAccount?: boolean, loggedInUserAccount?: Partial, apolloClient?: { query: (options: any) => Promise; }) => Promise; export declare const fetchCaseGroupsForAccount: (dispatch: CaseReducerDispatchType, accountNumber: string, setCaseGroupToUngroupedOrDefault?: boolean, abortSignal?: AbortSignal, caseGroupNumberToRestore?: string | undefined) => Promise; export declare const setCaseOwner: (dispatch: CaseReducerDispatchType, owner: IContact, product: string, abortSignalCaseGroup?: AbortSignal, abortSignalEntitlements?: AbortSignal, setCaseGroupToUngroupedOrDefault?: boolean, caseGroupNumberToRestore?: string | undefined, canChangeGroup?: boolean, isUserUpdate?: boolean, caseNumber?: string, caseAccountNumber?: string) => Promise; export declare const fetchCaseEntitlements: (dispatch: CaseReducerDispatchType, ssoUserName: string, product?: string, abortSignal?: AbortSignal, isUserUpdate?: boolean, caseNumber?: string) => Promise; export declare const fetchCaseGroupsForSSO: (dispatch: CaseReducerDispatchType, contactSsoUsername: string, setCaseGroupToUngroupedOrDefault?: boolean, abortSignal?: AbortSignal, caseGroupNumberToRestore?: string | undefined) => Promise; export declare const fetchCaseGroupsForContactGraphQL: (dispatch: CaseReducerDispatchType, apolloClient: { query: (options: any) => Promise; }, contactId: string, salesforceAccountId: string, defaultCaseGroupId?: string | null, isOrgAdmin?: boolean, currentGroupNumber?: string | null, currentGroupName?: string | null) => Promise; export declare const updateCaseWithSession: (dispatch: CaseReducerDispatchType, sessionItem: ISessionItem, loggedInUserAccountNumber: string, loggedInUserContact: IContact, loggedInUserAccount?: Partial, apolloClient?: { query: (options: any) => Promise; }) => Promise; export declare const fetchCaseDetailsHydra: (dispatch: CaseReducerDispatchType, caseNumber: string, loggedInUserRights: any, loggedInUser: any, apolloClient?: { query: (options: any) => Promise; }) => Promise; export declare const updateCaseDetails: (dispatch: CaseReducerDispatchType, caseNumber: string, caseDetails: Partial, dontSetDetails?: boolean) => Promise; export interface UpdateCaseDetailsGraphQLOptions { salesforceCaseId?: string; existingCaseDetails?: Partial; includeSecureSupport?: boolean; } export declare const updateCaseDetailsGraphQL: (dispatch: CaseReducerDispatchType, apolloClient: { query: (options: any) => Promise; mutate: (options: any) => Promise; }, caseNumber: string, caseUpdate: Partial, dontSetDetails?: boolean, options?: UpdateCaseDetailsGraphQLOptions) => Promise; /** GraphQL CaseUpdate for severity/status and FTS (X24x7__c / X24x7ContactInformation__c). */ export declare const updateCaseSeverityAndFtsGraphQL: (dispatch: CaseReducerDispatchType, apolloClient: { query: (options: any) => Promise; mutate: (options: any) => Promise; }, caseNumber: string, payload: CaseSeverityFtsGraphQLPayload, currentSeverity: string | null | undefined, options?: UpdateCaseDetailsGraphQLOptions) => Promise; export declare const getNotificationContacts4InternalUser: (dispatch: CaseReducerDispatchType, users: INotifiedUser[], caseOwnerSSO: string) => Promise; export declare const getNotificationContacts4ExternalUser: (dispatch: CaseReducerDispatchType, users: any, loggedInUserRights: any, accountNumber: any, caseOwnerSSO: string, fullNameCustom: string, apolloClient?: { query: (options: any) => Promise; }) => Promise; export interface CheckForCaseStatusToggleOptions { apolloClient?: { query: (options: any) => Promise; mutate: (options: any) => Promise; }; caseNumber?: string; existingCaseDetails?: Partial; } export declare const checkForCaseStatusToggleOnAttachOrComment: (dispatch: CaseReducerDispatchType, isInternal: boolean, currentStatus: string, options?: CheckForCaseStatusToggleOptions) => Promise; export declare const setSelectedCaseGroupUsers: (dispatch: CaseReducerDispatchType, accountNumber: string, groupNumber: string, loggedInUserRights: UserAuth) => Promise; export declare function getCustomNotificationEmails(dispatch: CaseReducerDispatchType, caseNumber: string): Promise; export declare function updateEmailListState(dispatch: CaseReducerDispatchType, email: string, customEmailsList: IApiResponseDetails>, callback: (email: string) => ICaseNotificationAddresses[]): void; export declare function getVersionsDetails(dispatch: CaseReducerDispatchType, apolloClient: { query: (options: any) => Promise; }, parentProductId: string, parentProductName: string): Promise; export declare const setRemoteRiderFlag: (dispatch: CaseReducerDispatchType, flag: boolean) => void; export declare const setABTestVariation: (dispatch: CaseReducerDispatchType, ABTestVariation: string) => void; //# sourceMappingURL=CaseReducer.d.ts.map