import { FetchStateByTimeframe } from '../../commonStateTypes/coaBalance/coaBalance'; import { COABalancesFilter } from '../../commonStateTypes/coaBalance/coaBalancesFilter'; import { FetchStateAndError, ID } from '../../commonStateTypes/common'; import { AccountsViewSelectorReport } from '../../commonStateTypes/selectorTypes/accountsViewSelectorReport'; import { AccountState } from '../../entity/account/accountState'; import { AccountGroupState } from '../../entity/accountGroup/accountGroupState'; import { ForecastState } from '../../entity/forecast/forecastState'; import { SectionAccountsViewState } from '../../entity/sectionAccountsView/sectionAccountsViewState'; import { PandLReportViewCalculatedSectionID, PandLReportViewSectionID } from '../profitAndLossClassesView/profitAndLossClassesViewSelectorTypes'; import { ProfitAndLossUIState, ProfitAndLossWithForecastState } from './profitAndLossState'; export interface ProfitAndLossReport extends AccountsViewSelectorReport { fetchStateByTimeframe: FetchStateByTimeframe; reducedAllFetchState: FetchStateAndError; reducedAnyFetchState: FetchStateAndError; uiState: ProfitAndLossUIState; } /** * Get P&L with forecast data overlaid on actuals. * @param filter : ; * @param forecastId * @param accountState * @param accountGroupState * @param forecastState * @param state * @notes IMPORTANT: * 1. Here the forecast data for the given forecast ID is super imposed on actual data. * 2. This method can super impose forecast data on whole data available date range, * rather than restricting to ONLY forecast date range. function getProfitAndLossWithForecastOnDataAvailableDateRange( * This is different from zeni REST API endpoint where it only super imposes forecast data ONLY for the forecast time period. */ export declare const getProfitAndLossReport: (filter: COABalancesFilter, forecastId: ID | undefined, accountState: AccountState, accountGroupState: AccountGroupState, sectionsState: SectionAccountsViewState, profitAndLossState: ProfitAndLossWithForecastState, forecastState: ForecastState) => ProfitAndLossReport; /** * Get FULL profit and loss report for given data available range, * In case if data available range is null, then it returns empty * @param timeframe * @param forecastId * @param accountState * @param accountGroupState * @param forecastState * @param state */ export declare function getProfitAndLossForFullDataAvailableRange(timeframe: 'month' | 'quarter' | 'year', forecastId: ID | undefined, accountState: AccountState, accountGroupState: AccountGroupState, sectionsState: SectionAccountsViewState, forecastState: ForecastState, state: ProfitAndLossWithForecastState): ProfitAndLossReport; export declare const getPandLReportFetchState: (forecastId: ID | undefined, profitAndLossState: ProfitAndLossWithForecastState) => { fetchStateByTimeframe: FetchStateByTimeframe; reducedAllFetchState: FetchStateAndError; reducedAnyFetchState: FetchStateAndError; };