import { BulkOperationType } from '../../../../commonStateTypes/bulkOperationType'; import { FetchState, ID } from '../../../../commonStateTypes/common'; import { SortOrder } from '../../../../commonStateTypes/selectorTypes/sortOrderTypes'; import { TimePeriod } from '../../../../commonStateTypes/timePeriod'; import { SelectorView } from '../../../../commonStateTypes/viewAndReport/viewAndReport'; import { Approvers } from '../../../../entity/approvalRule/approvalRuleState'; import { EntityApprovalStatusState } from '../../../../entity/entityApprovalStatus/entityApprovalStatusState'; import { Reimbursement } from '../../../../entity/reimbursement/reimbursementState'; import { User, UserState } from '../../../../entity/user/userState'; import { RootState } from '../../../../rootStateTypes'; import { ReimbursementFilters, ReimbursementViewSortKey, RemiBulkSelectExceptionInfoType, RemiListUIState, RemiSubTabType, RemiTabType, SaveRemiStageCode } from './remiListState'; export interface RemiBulkSelectInfo { isSelectableForBulkAction: boolean; isSelectableForBulkActionSelectAll: boolean; bulkSelectExceptionInfo?: RemiBulkSelectExceptionInfoType; } export interface RemiListBulkActionInfo { allowedBulkActions: BulkOperationType[]; bulkSubmissionFetchState: FetchState; isBulkActionAllowed: boolean; remisSelectedForBulkAction: ID[]; } export interface RemiListReport extends SelectorView { allSubTabs: RemiSubTabType[]; approvalCount: number; createdByUserList: User[]; createdByUserListFetchState: FetchState; currentSubTab: RemiSubTabType; currentTab: RemiTabType; filters: ReimbursementFilters; isDownloadEnabled: boolean; reimbursementBotEmail: string; reimbursements: ReimbursementView[]; remiBulkSubmissionLimit: number; remiListBulkActionInfo: RemiListBulkActionInfo; searchText: string; uiState: RemiListUIState; remiDetailSaveRemiCode?: SaveRemiStageCode; selectedRemiId?: ID; } export interface ReimbursementView extends Reimbursement { approvers: Approvers; submittedBy: User | undefined; bulkSelectInfo?: RemiBulkSelectInfo; createdByUser?: User; } export declare const getRemiList: (state: RootState, currentTimePeriod: TimePeriod, isBulkActionFeatureEnabled: boolean) => RemiListReport; export declare const getApproversOrRejectors: (reimbursement: Reimbursement, entityApprovalStatusState: EntityApprovalStatusState, userState: UserState) => Approvers; export declare const getRemiListOnSort: (sortKey: ReimbursementViewSortKey, sortOrder: SortOrder, currentTab: RemiTabType, reimbursements: ReimbursementView[]) => ReimbursementView[]; export declare const getAllowedBulkActions: (selectedTab: RemiTabType, selectedSubTab: RemiSubTabType, isAllAwaitingMyApproval: boolean, isFirstBillProcessing: boolean, hasReimbursementFromOthersInBulkList: boolean) => BulkOperationType[]; export declare const isRemiListDownloadable: (state: RootState, currentTimePeriod: TimePeriod) => boolean;