import { AccountGroupReport, AccountGroupType, AccountReport, AccountType, COABalance, COABalancesOrder, COABalancesSlice, FluxAnalysisSectionType } from '@zeniai/client-epic-state';
type SectionType = AccountType | AccountGroupType | FluxAnalysisSectionType;
export default SectionType;
interface Selector {
    acBalanceSelector: (account: AccountReport) => COABalancesSlice | undefined;
    acGroupBalanceSelector: (accountGroup: AccountGroupReport) => COABalancesSlice | undefined;
    compactedAccountGroupsSelector: (accountGroups: AccountGroupReport[]) => AccountGroupReport[];
    compactedAccountsSelector: (accountGroup: AccountGroupReport) => AccountReport[];
    compactedAccountsSelectorVariant: (accounts: AccountReport[]) => AccountReport[];
}
export type Filter = "no_filter" | "filter_account_balances" | "filter_account_and_account_group_balances" | "filter_account_and_class_balances";
export type AccountNilBalancesFilter = "off" | "filter_actual_nil_balances" | "filter_forecast_nil_balances" | "filter_actual_forecast_nil_balances";
export type AccountGroupNilBalancesFilter = "off" | "filter_actual_nil_account_group_balances" | "filter_forecast_nil_account_group_balances" | "filter_actual_forecast_nil_account_group_balances" | "filter_actual_forecast_empty_account_group_balances";
export declare function getSelectorApplyingFilters(sectionType: SectionType, filter: Filter, accountNilBalancesFilter: AccountNilBalancesFilter, accountGroupNilBalancesFilter: AccountGroupNilBalancesFilter): Selector;
export declare function hasNonZeroBalance(coaBalances?: COABalance[]): boolean;
export declare function hasNonZeroForecastBalance(coaBalances?: COABalance[]): boolean;
export declare function hasNonZeroForecastAndActualBalance(coaBalances?: COABalance[]): boolean;
/**
 * Get the balances array (report period + additional balances) from balances slice
 * @param balancesSlice balances slice
 * @param numOfBalances expected number of balances in the output if the input balanceSlice is null. Default -1.
 */
export declare function getBalances(balancesSlice: COABalancesSlice | undefined, orderBy?: COABalancesOrder, numOfBalances?: number, includeAdditionalBalances?: boolean): {
    balances: (COABalance | null)[];
    thisPeriodIndex: number;
};
/**
 * Get the balances array (report period + additional balances+ total balance) from balances slice
 * @param balancesSlice balances slice
 * @param numOfBalances expected number of balances in the output if the input balanceSlice is null. Default -1.
 */
export declare function getBalancesWithTotals(balancesSlice: COABalancesSlice | undefined, orderBy?: COABalancesOrder, numOfBalances?: number, includeAdditionalBalances?: boolean): {
    balances: (COABalance | null)[];
    thisPeriodIndex: number;
};
/**
 *
 * @param balances
 * @param displayOrder
 * @returns this function based on the display order will reverse the timeframe default balances
 * only when the display order is set to descending.
 */
export declare function getTimeframeBalancesInOrder(balances: COABalance[], displayOrder: COABalancesOrder): COABalance[];
export declare function nullForEmpty(balances: COABalance[], numOfBalances: number): (COABalance | null)[];
