import { COABalance, COABalanceWithPercent } from '../../commonStateTypes/coaBalance/coaBalance'; import { COABalancesFilter, COABalancesSlice } from '../../commonStateTypes/coaBalance/coaBalancesFilter'; import { FetchStateAndError, ID } from '../../commonStateTypes/common'; import { TimeframeTick, TimeframeTickWithMetaData } from '../../commonStateTypes/timeframeTick'; import { SelectorReport } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { AccountBase } from '../../entity/account/accountState'; import { ClassBase } from '../../entity/class/classState'; import { Vendor } from '../../entity/vendor/vendorState'; import { RootState } from '../../rootStateTypes'; import { ZeniDate } from '../../zeniDayJS'; import { OpexByVendorUIState } from './opExByVendorState'; export interface OpExBalancesByVendor extends COABalancesSlice { account: AccountBase | undefined; classBase: ClassBase | undefined; vendor: Vendor; } export interface OpExSummaryBalances extends COABalancesSlice { vendor: Vendor; } export interface OpExVendorAndBalance { balance: COABalance | COABalanceWithPercent; vendor: Vendor; } export declare function getOpexVendorTimeframeKey(timeframeTick: TimeframeTick): string; export type OpexVendorTimeframeKey = ReturnType; export interface OpExByVendorReport extends SelectorReport { allTimeframeTicks: TimeframeTickWithMetaData[]; filter: COABalancesFilter; isReportGenerated: boolean; opexBalances: OpExBalancesByVendor[]; refreshStatus: FetchStateAndError; reportFetchState: { month: FetchStateAndError; quarter: FetchStateAndError; }; summaryBalances: OpExSummaryBalances[]; top4VendorsAndOthers: Record; totalBalances: COABalancesSlice | undefined; lastRefreshSuccessTime?: ZeniDate; } export declare const getOpExByVendorReport: (state: RootState) => OpExByVendorReport; export declare const getOpExByVendorUIState: (state: RootState) => OpexByVendorUIState; export declare const isOpexByVendorIDNotSpecifiedVendor: (vendorId: ID) => boolean;