import { IAccountNotificationAddresses } from '@cee-eng/hydrajs/@types/api/customEmail'; import { IBookmarkedAccounts } from '@cee-eng/hydrajs/@types/api/public/bookmarks'; import { ICaseGroup } from '@cee-eng/hydrajs/@types/api/public/caseGroups'; import { IAccount, IPartnerManagedAccount } from '@cee-eng/hydrajs/@types/models/account'; import { ISsoContact } from '@cee-eng/hydrajs/@types/models/contact'; import { IPreference } from '@cee-eng/hydrajs/@types/models/general'; import { IConfigurationResponse } from '@cee-eng/hydrajs/@types/models/maintenance'; import { IAction, IApiResponseDetails, IPortalJwtToken } from '@rh-support/types/shared'; import { UserAuth } from '@rh-support/user-permissions'; import { ApolloQueryClient, IGraphQLAccountResult, ITroubleshootProductResponse } from '@rh-support/utils'; import { MutableRefObject } from 'react'; export declare enum UserPreferencesKeys { caseSavedSearchFilters = "PCM-CaseSavedSearchFilters", commentType = "PCM-CommentType", mostRecentSearch = "PCM-MostRecentSearch", caseListSelectedColumns = "PCM-CaseListSelectedColumns", featureAnnouncement = "PCM-FeatureAnnouncement", autoRestoreSavedSearch = "PCM-AutoRestoreSavedSearch", autoRestoreLastSearch = "PCM-AutoRestoreLastSearch", autoSaveSelectedColumns = "PCM-AutoSaveSelectedColumns", commentSignature = "PCM-CommentSignature", shareHostnames = "PCM-ShareHostnames", preferredLanguage = "PCM-PreferredLanguage", defaultGroups = "PCM-DefaultGroup", showHostnames = "PCM-showHostName", showNewPreferenceTooltip = "PCM-prefToolTipVisibility", caseViewInternal = "PCM-caseViewInternal", partnershipLastestAcceptedLink = "PCM-PartnershipLastestAcceptedLink", partnershipLastestRejectedLink = "PCM-PartnershipLastestRejectedLink", userLastSavedABTest = "PCM-UserLastSavedABTest" } export declare const BOOKMARK_APPLICATION_NAME = "pcm"; export declare const BOOKMARK_NAME_SPACE = "customer-portal"; export declare const BOOKMARK_TYPE = "accountnumbers"; export interface IBookmark { rootBookmarkId: number; bookmarkGroupName: string; bookmarkId: number; accountNumber: string; name: string; isBookmarked: boolean; isBookmarkedAndHasGroup: boolean; subscriptionAbuse: boolean; } export declare enum FeatureFlagKey { tcSearch = "tcSearch" } export declare enum GlobalMetadataReducerConstants { setCaseTypes = "setCaseTypes", setCaseSeverities = "setCaseSeverities", setCaseStatuses = "setCaseStatuses", setAllProducts = "setAllProducts", setLoggedInUsersAccount = "setLoggedInUsersAccount", setLoggedInUsersAccountNumber = "setLoggedInUsersAccountNumber", setLoggedInUser = "setLoggedInUser", setCaseLanguages = "setCaseLanguages", setCaseGroups = "setCaseGroups", setPcmConfig = "setPcmConfig", setLoggedInUserJwtToken = "setLoggedInUserJwtToken", setLoggedInUserRoles = "setLoggedInUserRoles", setManagedAccounts = "setManagedAccounts", setAccountManagers = "setAccountManagers", getBookmarkedAccounts = "getBookmarkedAccounts", updateGroupedBookmarks = "updateGroupedBookmarks", removeGroupedBookmarks = "removeGroupedBookmarks", getBookmarkedGroupAccounts = "getBookmarkedGroupAccounts", bookmarkAdded = "bookmarkAdded", bookmarkRemoved = "bookmarkRemoved", setInternalStatuses = "setInternalStatuses", setSbrGroups = "setSbrGroups", setUserPreferences = "setUserPreferences", toggleViewAsCustomer = "toggleViewAsCustomerFlag", setNavbarRef = "setNavbarRef", setHydraUserPreferences = "setHydraUserPreferences", updateFeatureFlag = "updateFeatureFlag", setAccountCustomEmails = "setAccountCustomEmails", setReferrerUrl = "setReferrerUrl", getNoclusteridreasons = "getNoclusteridreasons", setIsSharingHostnameswithRHt = "setIsSharingHostnameswithRHt", setTraditionalSupportSessionAgreed = "setTraditionalSupportSessionAgreed", setCaseRecordTypes = "setCaseRecordTypes" } export type ICaseType = string; export type ICaseSeverity = string; export type ICaseStatus = string; export interface IIntraction { time: Date; action: string; context: string[]; } export interface IUserPreferences { isCaseListFilterPanelExanded?: boolean; } export type IFeatureFlags = { [k in keyof typeof FeatureFlagKey]?: boolean; }; export interface IBookmarkedGroupIds { appId: number; namespaceId: number; valueTypeId: number; } export interface ICaseRecordTypeMap { [name: string]: string; } export interface IGlobalMetadataState { allCaseTypes: IApiResponseDetails; allCaseSeverities: IApiResponseDetails; allCaseStatuses: IApiResponseDetails; allProducts: IApiResponseDetails; loggedInUsersAccount: IApiResponseDetails; loggedInUsersAccountNumber: IApiResponseDetails; loggedInUser: IApiResponseDetails>; loggedInUserJwtToken: Partial; caseLanguages: IApiResponseDetails; caseInternalStatuses: IApiResponseDetails; caseGroups: IApiResponseDetails; pcmConfig: IApiResponseDetails; loggedInUserRights: IApiResponseDetails; managedAccounts: IApiResponseDetails[]>; accountManagers: IApiResponseDetails[]>; bookmarkedAccounts: IApiResponseDetails; bookmarkedGroupAccounts: IApiResponseDetails; caseSbrGroups: IApiResponseDetails; userPreferences: IApiResponseDetails; viewAsCustomer: boolean; navBarRef: MutableRefObject; hydraUserPreferences: IApiResponseDetails; featureFlags: IFeatureFlags; bookmarkedGroupIds: IBookmarkedGroupIds; accountCustomEmails: IApiResponseDetails; referrerUrl: string; caseNoClusterIdReasons: IApiResponseDetails; caseRecordTypes: IApiResponseDetails; caseListTraditionalSupportAgreed: boolean; troubleshootTraditionalSupportAgreed: boolean; } export interface IGlobalMetadataPayloadType extends IGlobalMetadataState { interaction: IIntraction; account: IAccount; flag: boolean; } type IActionType = IAction; export type GlobalMetadataReducerDispatchType = (value: IActionType) => void; export declare const initialGlobalMetadataState: IGlobalMetadataState; export declare const globalMetadataReducer: (pState: IGlobalMetadataState, action: IActionType) => IGlobalMetadataState; export declare const setReferrerUrl: (dispatch: GlobalMetadataReducerDispatchType, referrerUrl: string) => void; export declare const removeGroupedBookmarks: (dispatch: GlobalMetadataReducerDispatchType, allBookmarks: IBookmark[], removedAccountsId: number[]) => void; export declare const removeWholeGroup: (dispatch: GlobalMetadataReducerDispatchType, allBookmarks: IBookmark[], rootBookmarIds: number[]) => void; export declare const addEditbookmarks: (dispatch: GlobalMetadataReducerDispatchType, allBookmarks: IBookmark[], updatedAccounts: IBookmarkedAccounts, selectedAccounts: IBookmark[], group: string, accountsRemovedFromGroup?: IBookmark[]) => void; export declare const fetchCaseTypes: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: { query: (options: any) => Promise; }) => Promise; export declare const fetchCaseTypesHydra: (dispatch: GlobalMetadataReducerDispatchType, isSecureSupport: boolean) => Promise; export declare const fetchCaseSeverities: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: { query: (options: any) => Promise; }) => Promise; export declare const fetchCaseSeveritiesHydra: (dispatch: GlobalMetadataReducerDispatchType, isSecureSupport: boolean) => Promise; type CaseDetailsDispatch = (action: { type: string; payload?: unknown; }) => void; type CaseDetailsApolloClient = { query: (options: any) => Promise; }; type SetCaseAccountNumberFn = (dispatch: CaseDetailsDispatch, accountNumber: string, isLoggedInUsersAccount?: boolean, loggedInUserAccount?: Partial, apolloClient?: CaseDetailsApolloClient) => Promise; export declare const fetchCaseDetails: (caseDispatch: CaseDetailsDispatch, apolloClient: CaseDetailsApolloClient, caseNumber: string, setCaseAccountNumber?: SetCaseAccountNumberFn, includeSecureSupport?: boolean) => Promise<{ [x: string]: string | boolean; }>; export declare const fetchAllStatuses: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: { query: (options: any) => Promise; }) => Promise; export declare const fetchProducts: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: { query: (options: any) => Promise; }) => Promise; export declare const fetchCaseRecordTypes: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: { query: (options: any) => Promise; }) => Promise; export declare const setAllProducts: (dispatch: GlobalMetadataReducerDispatchType, allProducts: ITroubleshootProductResponse) => void; export declare const fetchLoggedInUsersAccount: (dispatch: GlobalMetadataReducerDispatchType, token: Partial, silent?: boolean, apolloClient?: { query: (options: any) => Promise; }) => Promise; export declare const fetchLoggedInUser: (dispatch: GlobalMetadataReducerDispatchType, token: Partial, pcmConfig: any, apolloClient?: { query: (options: any) => Promise; }) => Promise; export declare const fetchLanguageMetadata: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: { query: (options: any) => Promise; }) => Promise; export declare const fetchInternalStatusMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise; export declare const fetchCaseSbrsMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise; export declare const fetchCaseGroupsForSSO: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: ApolloQueryClient, accountId: string, defaultCaseGroupId?: string | null, contactId?: string, isOrgAdmin?: boolean) => Promise; export declare const fetchCaseGroupsForAccount: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: ApolloQueryClient, accountId: string, defaultCaseGroupId?: string | null, contactId?: string, isOrgAdmin?: boolean) => Promise; export declare const setCaseGroups: (dispatch: GlobalMetadataReducerDispatchType, groups: ICaseGroup[]) => void; export declare const setLoggedInUserJwtToken: (dispatch: GlobalMetadataReducerDispatchType, loggedInUserJwtToken: Partial) => void; export declare const loadPCMConfig: (dispatch: GlobalMetadataReducerDispatchType) => Promise; export declare const setLoggedInUserRoles: (dispatch: GlobalMetadataReducerDispatchType, loggedInUserRights: UserAuth) => void; export declare const fetchManagedAccounts: (dispatch: GlobalMetadataReducerDispatchType, token: Partial) => Promise; export declare const updateManagedAccounts: (dispatch: GlobalMetadataReducerDispatchType, managedAccounts: Partial[]) => void; export declare const fetchAccountManagers: (dispatch: GlobalMetadataReducerDispatchType, token: Partial) => Promise; export declare const updateAccountManagers: (dispatch: GlobalMetadataReducerDispatchType, accountManagers: Partial[]) => void; export declare const fetchBookmarkedGroupAccounts: (dispatch: GlobalMetadataReducerDispatchType, username: string) => Promise; export declare const fetchBookmarkedAccounts: (dispatch: GlobalMetadataReducerDispatchType, bookmarkedAccounts: string[]) => Promise; export declare const setUserPreferences: (dispatch: GlobalMetadataReducerDispatchType, userPreferences: IUserPreferences) => void; export declare const setNavbarRef: (dispatch: GlobalMetadataReducerDispatchType, navBarRef: MutableRefObject) => void; export declare const toggleViewAsCustomerFlag: (dispatch: GlobalMetadataReducerDispatchType) => void; export declare const fetchUserPreferences: (dispatch: GlobalMetadataReducerDispatchType, token: Partial) => Promise; export declare const updateUserPreferences: (dispatch: GlobalMetadataReducerDispatchType, ssoUserName: string, preferences: IPreference[], operation?: "add" | "remove", silent?: boolean, throwAdditionalError?: boolean) => Promise; export declare const updateFeatureFlag: (dispatch: GlobalMetadataReducerDispatchType, featureFlags: Partial) => void; export declare const fetchAccountCustomEmails: (dispatch: GlobalMetadataReducerDispatchType, accountNumber: string) => Promise; export declare const setAccountCustomEmails: (dispatch: GlobalMetadataReducerDispatchType, accountCustomEmails: IAccountNotificationAddresses[]) => void; export declare const fetchNoClusterIdReasonsMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise; /** Sets both case-list and troubleshoot agreement flags together (agree once per session). */ export declare const setTraditionalSupportSessionAgreed: (dispatch: GlobalMetadataReducerDispatchType, value: boolean) => void; export declare const updateShareHostnameWithRHTState: (dispatch: GlobalMetadataReducerDispatchType, loggedInUsersAccount: IGraphQLAccountResult, shareHostnameWithRHT: boolean) => void; export {}; //# sourceMappingURL=GlobalMetadataReducer.d.ts.map