import { COABalance, COABalanceGroupedByPeriod } from '../../commonStateTypes/coaBalance/coaBalance'; import { FetchStateAndError, ID } from '../../commonStateTypes/common'; import { ReportUIState } from '../../commonStateTypes/viewAndReport/reportUIState'; import { Report } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { InsightSummary } from '../../entity/insights/insightSummary'; import { ZeniDate } from '../../zeniDayJS'; export interface NetBurnOrIncomeUIState extends ReportUIState { nodeCollapseState: Record; scrollPosition: { scrollTop: number; scrollLeft?: number; } | undefined; } export interface NetBurnOrIncomeState extends Report { fetchState: { month: FetchStateAndError; quarter: FetchStateAndError; year: FetchStateAndError; }; insights: InsightSummary[]; runwayAndAverages: RunwayAndAverages; cogs?: COABalanceGroupedByPeriod; expenses?: COABalanceGroupedByPeriod; forecastId?: ID; income?: COABalanceGroupedByPeriod; } export interface NetBurnOrIncomeWithForecastState { netBurnOrIncome: NetBurnOrIncomeState; netBurnOrIncomeByForecastID: Record; uiState: NetBurnOrIncomeUIState; lastFetchRequestTime?: ZeniDate; } export interface RunwayAndAverages { averages?: COABalance; runway?: { cashZeroDate?: ZeniDate; cashZeroDateDisplayText?: string; runwayDisplayText?: string; }; }