import { RecommendationPayload } from '../../commonPayloadTypes/recommendationPayload'; import { URLPayload } from '../../commonPayloadTypes/urlPayload'; import { ID } from '../../commonStateTypes/common'; import { AccountBasePayload } from '../account/accountPayload'; import { AddressPayload } from '../address/addressPayload'; import { BankAccountPayload } from '../bankAccount/bankAccountPayload'; import { ContactPayload } from '../billPay/contact/contactPayload'; import { ClassBasePayload } from '../class/classPayload'; import { FilePayload } from '../file/filePayload'; import { PaymentInstrumentPayload } from '../paymentInstrument/paymentInstrumentPayload'; import { AttachmentPayload } from '../transaction/payloadTypes/attachmentPayload'; import { UserPayload } from '../user/userPayload'; import { Vendor, VendorBase } from './vendorState'; export interface VendorBasePayload { vendor_id: string; vendor_name: string; logo?: URLPayload; qbo_id?: string; } /** * Resolves the effective vendor identifier from a payload. * For JE/Deposit transactions, vendor_id is null at runtime — qbo_id is the * actual identity. Using nullish-coalescing (`??`) handles both cases uniformly. */ export declare const getVendorPayloadIdentifier: (vendor: VendorBasePayload) => string | null; export declare const mapVendorBasePayloadToVendorBase: (payload: VendorBasePayload) => VendorBase; export declare const toVendorBasePayload: (tranVendor: VendorBase | undefined, vendorUpdates?: VendorBase) => VendorBasePayload; interface MatchScorePayload { value: number; } export interface SpendPayload { last_3_months_spend?: number; last_6_months_spend?: number; last_12_months_spend?: number; last_30_days_spend?: number; last_90_days_spend?: number; last_month_spend?: number; previous_year_spend?: number; year_to_date_spend?: number; } export interface VendorPayload extends VendorBasePayload, SpendPayload { currency_code: string; currency_symbol: string; qbo_id: string; account?: AccountBasePayload | null; accounting_class?: ClassBasePayload | null; address?: AddressPayload | null; balance?: number; bank_account_ids?: string[]; bank_accounts?: BankAccountPayload[]; contacts?: ContactPayload[]; country_code?: string | null; create_time?: string; document_ids?: ID[] | null; documents?: FilePayload[]; email?: string; first_name?: string; is_deleted?: boolean; is_type_int?: boolean; is_type_misc?: boolean; is_type_nec?: boolean; is_vendor_1099?: boolean; last_name?: string; legal_name?: string; match_score?: MatchScorePayload; middle_name?: string; owner?: UserPayload | null; payment_instrument_ids?: string[] | null; payment_instruments?: PaymentInstrumentPayload[] | null; phone?: string; preferred_international_transfer_fee_bearer_payment_method?: string; qbo_create_time?: string; qbo_update_time?: string; recommendation?: RecommendationPayload[]; shipping_address?: AddressPayload | null; suffix?: string; sync_token?: string; tin?: Filing1099TinTypePayload; title?: string; transaction_attachments?: AttachmentPayload[] | null; update_time?: string; vendor_1099_status?: string; vendor_1099_ytd_total_int?: number; vendor_1099_ytd_total_misc?: number; vendor_1099_ytd_total_nec?: number; vendor_currency_code?: string; vendor_currency_symbol?: string; vendor_type?: string | null; w9_document_ids?: ID[]; w9_documents?: FilePayload[]; website_url?: string; } interface Filing1099TinTypePayload { type: string | null; value: string | null; } export declare const mapVendorPayloadToVendor: (payload: VendorPayload) => Vendor; export {};