import { NestedAccountHierarchyForReport } from '../../../commonStateTypes/accountView/nestedAccountID'; import { NestedClassHierarchyForReport } from '../../../commonStateTypes/classesView/nestedClassID'; import { FetchStateAndError, ID } from '../../../commonStateTypes/common'; import { TimePeriod } from '../../../commonStateTypes/timePeriod'; import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport'; import { AccountBase } from '../../../entity/account/accountState'; import { Address } from '../../../entity/address/addressState'; import { Contact } from '../../../entity/billPay/contact/contact'; import { ClassBase } from '../../../entity/class/classState'; import { Entity } from '../../../entity/genericEntity/entity'; import { User } from '../../../entity/user/userState'; import { Filing1099TinType } from '../../../entity/vendor/vendorType'; import { VendorSpend } from '../../../entity/vendorExpense/vendorExpenseState'; import { VendorSpendTrendFilterTabType } from '../../../entity/vendorExpense/vendorSpendTrendFilterTabType'; import { RootState } from '../../../rootStateTypes'; import { AccountListSelectorView } from '../../accountList/accountListSelector'; import { NewAddressData } from '../../addressView/addressViewState'; import { ClassListSelectorView } from '../../classList/classListSelector'; import { TransactionListByEntityView } from '../../transactionList/transactionListByEntitySelector'; import { TrendWithTransactionsView } from '../../trendWithTransactions/trendWithTransactionsSelector'; import { VendorType } from '../../vendorTypeList/vendorTypeListPayload'; import { VendorDetailTabsType, VendorsTabVendorDetailLocalData, VendorsTabVendorViewUIState } from './vendorsTabVendorViewState'; export interface VendorsTabVendorDetails { saveStatus: FetchStateAndError; vendorBasic: VendorsTabVendorBasic; vendorAddress?: Address; vendorDetailLocalData?: VendorsTabVendorDetailLocalData; vendorNewAddressStatus?: NewAddressData; } export interface VendorsTabVendorBasic { id: ID; name: string; account?: AccountBase; class?: ClassBase; contacts?: Contact[]; email?: string; legalName?: string; owner?: User; phone?: string; vendorDocuments?: File[]; vendorTin?: Filing1099TinType; vendorType?: VendorType; } export interface VendorsTabVendorViewSelectorView extends SelectorView { accountList: AccountListSelectorView; accountsHierarchyList: NestedAccountHierarchyForReport[]; classHierarchyList: NestedClassHierarchyForReport[]; classList: ClassListSelectorView; isAccountingClassesEnabled: boolean; ownerList: User[]; vendorTypeList: VendorType[]; vendorView?: VendorsTabVendorDetails; } export interface VendorsTabVendorDetailPageView extends SelectorView { selectedTabType: VendorDetailTabsType; trendWithTransactions: TrendWithTransactionsView; uiState: VendorsTabVendorViewUIState; vendorSpend: VendorSpend; vendorSpendTrendFilterTabValue: VendorSpendTrendFilterTabType; vendorViewDetails: VendorsTabVendorViewSelectorView; allTransactionsTabData?: { numberOfQuartersFetched: number; timePeriod: TimePeriod; }; allVendorTransactionsView?: TransactionListByEntityView; } export declare const getVendorsTabVendorView: (state: RootState, vendorIdFromUrl: ID) => VendorsTabVendorViewSelectorView; export declare const getVendorsTabDetailPageView: (state: RootState, vendorId: ID, entity: Entity) => VendorsTabVendorDetailPageView;