import { COABalanceGrouped, COABalanceMonthQuarterTimeframe } from '../../commonStateTypes/coaBalance/coaBalance'; import { FetchStateAndError, ID, Mode } from '../../commonStateTypes/common'; import { DataAvailable } from '../../commonStateTypes/dataAvailable'; import { SortOrder } from '../../commonStateTypes/selectorTypes/sortOrderTypes'; import { ReportUIState } from '../../commonStateTypes/viewAndReport/reportUIState'; import { PageToken, Report } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { ZeniDate } from '../../zeniDayJS'; export interface OpExByVendorQuery { fetchNextPage: boolean; searchString: string; sortKey: OpexByVendorSortKey; sortOrder: SortOrder; pageLimit?: number; } export declare const toOpexByVendorSortKeyType: (v: string) => "totals" | "vendor" | "class" | "account"; export declare type OpexByVendorSortKey = ReturnType; export declare function getOpexVendorKey(vendorId: ID, accountId: ID | undefined, classId: ID | undefined): string; export type OpexVendorKey = ReturnType; export interface OpExBalancesByVendorKey { accountId: ID | undefined; classId: ID | undefined; key: OpexVendorKey; vendorId: ID; balancesByPeriod?: COABalanceGrouped; } export interface OpexByVendorUIState extends ReportUIState { mode: Mode; pageFetchInProgress: boolean; pageToken: { month: PageToken; quarter: PageToken; }; searchString: { month: string; quarter: string; }; sortKey: { month: OpexByVendorSortKey; quarter: OpexByVendorSortKey; }; sortOrder: { month: SortOrder; quarter: SortOrder; }; sortOrSearchInProgress: boolean; timeframe: COABalanceMonthQuarterTimeframe; pageLimit?: number; scrollPosition?: { scrollTop: number; scrollLeft?: number; }; } export interface OpExByVendorState extends Omit { balancesByVendorKey: Record; dataAvailable: { month?: DataAvailable; quarter?: DataAvailable; }; opExByVendorKeysByTimeframe: { month: OpexVendorKey[]; quarter: OpexVendorKey[]; }; opExByVendorKeysForSearchByTimeframe: { month: OpexVendorKey[]; quarter: OpexVendorKey[]; }; opExByVendorReportGenerated: boolean; refreshStatus: FetchStateAndError; reportFetchState: { month: FetchStateAndError; quarter: FetchStateAndError; }; summaryFetchState: FetchStateAndError; summaryOpexByVendorKey: Record; totalOpexByVendor: COABalanceGrouped; uiState: OpexByVendorUIState; lastRefreshSuccessTime?: ZeniDate; }