import { ClientAnalytics } from '@zeniai/client-analytics'; import { AccountReport, AccountViewMode, BalanceSheetClassesViewReport, BalanceSheetProjectViewReport, BalanceSheetReport, COABalance, COABalanceTimeFrame, COABalanceType, COABalancesOrder, COABalancesRange, COABalancesRangeWithThisPeriod, CashFlowReport, ClassViewLayout, FetchState, FetchStateAndError, ID, NestedClassID, ProfitAndLossByClassHorizontalReport, ProfitAndLossClassesViewReport, ProfitAndLossProjectViewReport, ProfitAndLossReport, ReportFormat, ReportID, TimeframeTick, TimeframeTickWithMetaData } from '@zeniai/client-epic-state'; import { RequestToOpenThreadType } from '../commentsAndNotes/utils/ThreadsProvider'; import { DownloadbleReportProps } from '../common/downloadReport/downloadableReportProps'; import { ReportTreeScrollPosition } from '../reportTree/ReportTree'; import { AccountBalanceClickMeta } from '../reportTree/reportTreeTypes'; export interface Props extends DownloadbleReportProps { allTimeframeTicks: TimeframeTickWithMetaData[]; balanceSheetClassesViewReport: BalanceSheetClassesViewReport; balanceSheetProjectViewReport: BalanceSheetProjectViewReport; balanceSheetReport: BalanceSheetReport; balancesInTimeframe: COABalance[]; cashFlowReport: CashFlowReport; displayOrder: COABalancesOrder; fetchState: FetchState; isCompareMode: boolean; isZeniCOAUsed: boolean; profitAndLossByClassHorizontalReport: ProfitAndLossByClassHorizontalReport; profitAndLossClassesViewReport: ProfitAndLossClassesViewReport; profitAndLossProjectViewReport: ProfitAndLossProjectViewReport; profitAndLossReport: ProfitAndLossReport; reportFormat: ReportFormat; reportsResyncFetchState: FetchStateAndError; selectedCOABalancesRange: COABalancesRange; selectedReport: ReportID; selectedReportAndTimeframeFetchState: FetchStateAndError; selectedTimeframe: COABalanceTimeFrame; showAccountGroups: boolean; analytics?: ClientAnalytics; /** * Passed from the host when using `connect` so `mapDispatchToProps` receives * layout state via `ownProps` (state props are not available there). */ classViewLayout?: ClassViewLayout; dataAvailable?: TimeframeTick; initialOpenThreadRequest?: RequestToOpenThreadType; isAccountingClassesEnabled?: boolean; isAccountingProjectsEnabled?: boolean; /** When set with onAskAiCfoClick, shows Ask AI CFO next to download (24px gap). */ isAiCfoAccessEnabled?: boolean; /** * Feature gate for the "Horizontal" switch next to Compare on P&L by class. * When omitted, treated as enabled. */ isHorizontalClassReportSwitchEnabled?: boolean; isReportsCommentingEnabled?: boolean; isZeniUser?: boolean; onAdditionalBalanceSelectionChanged: (isCompareModeOn: boolean, additionalBalances: COABalanceType[], maxNumOfPeriodsToSelect: number, reportViewUpdate?: boolean) => void; onOpenAccountViewMode: () => void; onUpdateDisplayOrder: (displayOrder: COABalancesOrder) => void; onUpdateHighlightedNumberOfPeriods: (additionalBalances: COABalanceType[], isCompareModeOn: boolean, maxNumOfPeriodsToSelect: number, coaBalances: COABalance[]) => void; onUpdateReportFormat: (reportFormat: ReportFormat) => void; onAccountBalanceClick?: (account: AccountReport, balance: COABalance, balanceClickMeta?: AccountBalanceClickMeta) => void; onAskAiCfoClick?: () => void; onBackClick?: () => void; onClickMenuIcon?: () => void; onCOABalancesRangeChanged?: (selectedCOABalancesRange: COABalancesRange, highlightedCOABalancesRange?: COABalancesRangeWithThisPeriod) => void; onElementCollapseStateChanged?: (reportId: ReportID, nodeId: string, isCollapsed: boolean) => void; onFetchClassReportFired?: () => void; onReloadReport?: () => void; onReportSelectionChanged?: (selectedReport: ReportID) => void; onResyncReports?: () => void; onTableScroll?: (reportId: ReportID, props: ReportTreeScrollPosition) => void; onThisPeriodChanged?: (thisPeriod: TimeframeTick, maxNumOfPeriodsToSelect: number, reportViewUpdate?: boolean) => void; onTimeframeSelectionChanged?: (selectedTimeframe: COABalanceTimeFrame, isUpdateAdditionalBalances: boolean, reportViewUpdate?: boolean) => void; onUpdateAccountViewMode?: (view: AccountViewMode) => void; onUpdateClassesToFilterOut?: (classesToFilterOut: NestedClassID[]) => void; onUpdateClassViewLayout?: (layout: ClassViewLayout) => void; onUpdateProjectsToFilterOut?: (projectsToFilterOut: ID[]) => void; } export default function ReportsPage(props: Props): import("react/jsx-runtime").JSX.Element;