import { Currency } from '../../../commonStateTypes/amount'; import { COABalance } from '../../../commonStateTypes/coaBalance/coaBalance'; import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common'; import { SortOrder } from '../../../commonStateTypes/selectorTypes/sortOrderTypes'; import { MonthYearPeriodId } from '../../../commonStateTypes/timePeriod'; import { PageToken } from '../../../commonStateTypes/viewAndReport/viewAndReport'; import { ZeniDate } from '../../../zeniDayJS'; export type FluxAnalysisSectionType = 'generalExpense' | 'reimbursement'; declare const toFluxAnalysisSortKey: (v: string) => "vendor" | "status" | "variance"; export type FluxAnalysisSortKey = ReturnType; export type FluxAnalysisActionType = 'review' | 'unreview'; export type FluxAnalysisReviewStatus = 'Pending Review' | 'Reviewed'; export interface FluxBalancesByMonth { month1: COABalance; month2: COABalance; } export interface BalancesAndVariance { balancesByMonth: FluxBalancesByMonth | undefined; varianceAmount: number; variancePercentage: number; } export interface FluxAnalysisEntities { operatingExpenses: FluxAnalysisOperatingExpense[]; } export interface FluxVendorAccountsAndClasses extends BalancesAndVariance { accountId: ID | undefined; classId: ID | undefined; } export interface FluxAnalysisOperatingExpense extends BalancesAndVariance { anomalyReason: string; currency: Currency; fluxAnalysisEntityId: ID; status: FluxAnalysisReviewStatus; userId: ID | undefined; vendorAccountsAndClasses: FluxVendorAccountsAndClasses[]; vendorId: ID; } interface GroupPaginationInfo { hasMore: boolean; pageToken: PageToken; totalCount: number; limit?: number; } export interface FluxAnalysisViewUIState { collapsableStatus: { [nodeId: string]: boolean; }; paginationInfoByGroup: { generalExpense: GroupPaginationInfo; reimbursement: GroupPaginationInfo; }; scrollPosition: { scrollTop: number; scrollLeft?: number; } | undefined; searchString: string; sortKey: FluxAnalysisSortKey; sortOrder: SortOrder; } export interface FluxAnalysisViewGroup { fetchStatus: FetchStateAndError; operatingExpenseIds: ID[]; total: BalancesAndVariance | undefined; } export interface FluxAnalysisViewGroups { generalExpense: FluxAnalysisViewGroup; reimbursement: FluxAnalysisViewGroup; } export interface FluxAnalysisViewState extends FetchedState { bulkReviewStatus: FetchStateAndError; currency: Currency; fluxAnalysisEntities: FluxAnalysisEntities; groupsBySelectedPeriod: Record; refreshStatus: FetchStateAndError; reviewOperatingExpenseIdsByPeriod: Record; selectedSectionIdsByPeriod: Record; totalBalancesAndVariance: BalancesAndVariance | undefined; uiState: FluxAnalysisViewUIState; lastRefreshSuccessTime?: ZeniDate; } export {};