import { AccountGroupReportV2, AccountGroupType, AccountType, COABalance, COABalancesOrder, COABalancesSlice, NestedAccountReport } from '@zeniai/client-epic-state';
export type SectionType = AccountType | AccountGroupType;
interface SelectorAccountsView {
    acBalanceSelector: (account: NestedAccountReport) => COABalancesSlice | undefined;
    acGroupBalanceSelector: (accountGroup: AccountGroupReportV2) => COABalancesSlice | undefined;
    compactedAccountGroupsSelector: (accountGroups: AccountGroupReportV2[]) => AccountGroupReportV2[];
    compactedAccountsSelector: (accountGroup: AccountGroupReportV2) => NestedAccountReport[];
    compactedAccountsSelectorVariant: (accounts: NestedAccountReport[]) => NestedAccountReport[];
}
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(filter: Filter, accountNilBalancesFilter: AccountNilBalancesFilter, accountGroupNilBalancesFilter: AccountGroupNilBalancesFilter): SelectorAccountsView;
export declare function hasNonZeroBalance(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;
};
export declare function nullForEmpty(balances: COABalance[], numOfBalances: number): (COABalance | null)[];
export {};
