import { ClientAnalytics } from '@zeniai/client-analytics';
import { AccountReport, AccountViewMode, 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[];
    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;
