UNPKG

billdotcom-sdk-v3

Version:

TypeScript SDK for Bill.com V3 API

1,281 lines (1,272 loc) 88.7 kB
import { z } from 'zod'; interface BillClientOptions { autoLogin?: boolean; } interface LoginCredentials { username: string; password: string; organizationId: string; devKey: string; environment?: 'sandbox' | 'production'; } /** * @deprecated Use BillClientOptions for constructor and LoginCredentials for login() */ interface BillClientConfig { username: string; password: string; organizationId: string; devKey: string; environment?: 'sandbox' | 'production'; autoLogin?: boolean; } interface PaginationParams { max?: number; page?: string | null; } /** * Supported filter operators for Bill.com API search operations */ type FilterOperator = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin' | 'sw'; /** * Filter for 'in' and 'nin' operators that accept arrays */ interface ArrayFilter { field: string; op: 'in' | 'nin'; value: string[]; } /** * Filter for scalar operators (eq, ne, gt, gte, lt, lte, sw) */ interface ScalarFilter { field: string; op: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'sw'; value: string | number | boolean; } /** * Union type for all filter types */ type Filter = ArrayFilter | ScalarFilter; interface ListParams extends PaginationParams { filters?: Filter[]; sort?: Array<{ field: string; order: 'asc' | 'desc'; }>; } interface PaginatedResponse<T> { nextPage?: string; prevPage?: string; results: T[]; } interface ApiResponse<T> { response_status: number; response_message: string; response_data: T; } interface LoginResponse { sessionId: string; organizationId: string; userId: string; apiEndPoint: string; } interface SessionInfo { sessionId: string; organizationId: string; userId: string; apiEndPoint: string; } type EntityStatus = 'active' | 'inactive' | 'archived'; interface RequestConfig { baseUrl: string; devKey: string; sessionId?: string; } declare abstract class BaseResource<TEntity, TCreateRequest, TUpdateRequest, TListParams extends ListParams = ListParams> { protected readonly getConfig: () => RequestConfig; protected abstract readonly endpoint: string; protected abstract readonly bulkResponseKey: string; constructor(getConfig: () => RequestConfig); list(params?: TListParams): Promise<PaginatedResponse<TEntity>>; get(id: string): Promise<TEntity>; create(data: TCreateRequest): Promise<TEntity>; createMultiple(data: TCreateRequest[]): Promise<TEntity[]>; update(id: string, data: TUpdateRequest): Promise<TEntity>; archive(id: string): Promise<TEntity>; restore(id: string): Promise<TEntity>; } /** Valid account types for a vendor */ declare const VENDOR_ACCOUNT_TYPES: readonly ["BUSINESS", "PERSON", "NONE", "UNDEFINED"]; /** Valid bank account types */ declare const VENDOR_BANK_ACCOUNT_TYPES: readonly ["CHECKING", "SAVINGS"]; /** Valid bank account owner types */ declare const VENDOR_BANK_ACCOUNT_OWNER_TYPES: readonly ["BUSINESS", "PERSON"]; /** Valid virtual card statuses */ declare const VENDOR_VIRTUAL_CARD_STATUSES: readonly ["ENROLLED", "UNENROLLED", "PENDING", "UNKNOWN", "VERBAL_COMMITMENT", "REQUIRE_MORE_INFO", "UNDEFINED"]; /** Valid payment methods */ declare const VENDOR_PAY_BY_TYPES: readonly ["ACH", "CHECK", "VIRTUAL_CARD", "RPPS", "UNDEFINED"]; /** Valid payment sub-types */ declare const VENDOR_PAY_BY_SUB_TYPES: readonly ["MULTIPLE", "LOCAL", "WIRE", "UNDEFINED", "NONE"]; /** Valid tax ID types */ declare const VENDOR_TAX_ID_TYPES: readonly ["SSN", "EIN", "UNDEFINED"]; /** Valid alternate payment types */ declare const VENDOR_ALTERNATE_PAY_BY_TYPES: readonly ["UNDEFINED", "CREDIT_CARD", "AMEX"]; /** Fields that can be used for filtering vendors */ declare const VENDOR_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "shortName", "accountNumber", "accountType", "email", "createdTime", "updatedTime"]; /** Fields that can be used for sorting vendors */ declare const VENDOR_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"]; declare const VendorAccountTypeSchema: z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; NONE: "NONE"; UNDEFINED: "UNDEFINED"; }>; declare const VendorAddressSchema: z.ZodObject<{ line1: z.ZodOptional<z.ZodString>; line2: z.ZodOptional<z.ZodString>; city: z.ZodOptional<z.ZodString>; stateOrProvince: z.ZodOptional<z.ZodString>; zipOrPostalCode: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; countryName: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const VendorBankAccountTypeSchema: z.ZodEnum<{ CHECKING: "CHECKING"; SAVINGS: "SAVINGS"; }>; declare const VendorBankAccountOwnerTypeSchema: z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; }>; declare const VendorBankAccountSchema: z.ZodObject<{ nameOnAccount: z.ZodOptional<z.ZodString>; accountNumber: z.ZodOptional<z.ZodString>; routingNumber: z.ZodOptional<z.ZodString>; type: z.ZodOptional<z.ZodEnum<{ CHECKING: "CHECKING"; SAVINGS: "SAVINGS"; }>>; ownerType: z.ZodOptional<z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; }>>; paymentCurrency: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const VendorVirtualCardStatusSchema: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ENROLLED: "ENROLLED"; UNENROLLED: "UNENROLLED"; PENDING: "PENDING"; UNKNOWN: "UNKNOWN"; VERBAL_COMMITMENT: "VERBAL_COMMITMENT"; REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO"; }>; declare const VendorPayByTypeSchema: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ACH: "ACH"; CHECK: "CHECK"; VIRTUAL_CARD: "VIRTUAL_CARD"; RPPS: "RPPS"; }>; declare const VendorVirtualCardSchema: z.ZodObject<{ status: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ENROLLED: "ENROLLED"; UNENROLLED: "UNENROLLED"; PENDING: "PENDING"; UNKNOWN: "UNKNOWN"; VERBAL_COMMITMENT: "VERBAL_COMMITMENT"; REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO"; }>>; remitEmail: z.ZodOptional<z.ZodString>; enrollDate: z.ZodOptional<z.ZodString>; declineDate: z.ZodOptional<z.ZodString>; alternatePayByType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; CREDIT_CARD: "CREDIT_CARD"; AMEX: "AMEX"; }>>; }, z.core.$strip>; declare const VendorPaymentInformationSchema: z.ZodObject<{ payeeName: z.ZodOptional<z.ZodString>; email: z.ZodOptional<z.ZodString>; lastPaymentDate: z.ZodOptional<z.ZodString>; payByType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ACH: "ACH"; CHECK: "CHECK"; VIRTUAL_CARD: "VIRTUAL_CARD"; RPPS: "RPPS"; }>>; payBySubType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{ NONE: "NONE"; UNDEFINED: "UNDEFINED"; MULTIPLE: "MULTIPLE"; LOCAL: "LOCAL"; WIRE: "WIRE"; }>>>; bankAccount: z.ZodOptional<z.ZodObject<{ nameOnAccount: z.ZodOptional<z.ZodString>; accountNumber: z.ZodOptional<z.ZodString>; routingNumber: z.ZodOptional<z.ZodString>; type: z.ZodOptional<z.ZodEnum<{ CHECKING: "CHECKING"; SAVINGS: "SAVINGS"; }>>; ownerType: z.ZodOptional<z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; }>>; paymentCurrency: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; virtualCard: z.ZodOptional<z.ZodObject<{ status: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ENROLLED: "ENROLLED"; UNENROLLED: "UNENROLLED"; PENDING: "PENDING"; UNKNOWN: "UNKNOWN"; VERBAL_COMMITMENT: "VERBAL_COMMITMENT"; REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO"; }>>; remitEmail: z.ZodOptional<z.ZodString>; enrollDate: z.ZodOptional<z.ZodString>; declineDate: z.ZodOptional<z.ZodString>; alternatePayByType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; CREDIT_CARD: "CREDIT_CARD"; AMEX: "AMEX"; }>>; }, z.core.$strip>>; paymentPurpose: z.ZodOptional<z.ZodObject<{ text: z.ZodOptional<z.ZodString>; code: z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; value: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; }, z.core.$strip>; declare const VendorAdditionalInfoSchema: z.ZodObject<{ taxId: z.ZodOptional<z.ZodString>; taxIdType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; SSN: "SSN"; EIN: "EIN"; }>>; track1099: z.ZodOptional<z.ZodBoolean>; leadTimeInDays: z.ZodOptional<z.ZodNumber>; combinePayments: z.ZodOptional<z.ZodBoolean>; paymentTermId: z.ZodOptional<z.ZodString>; companyName: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const VendorBalanceSchema: z.ZodObject<{ amount: z.ZodOptional<z.ZodNumber>; lastUpdatedDate: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const VendorAutoPaySchema: z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; bankAccountId: z.ZodOptional<z.ZodString>; createdBy: z.ZodOptional<z.ZodString>; maxAmount: z.ZodOptional<z.ZodNumber>; daysBeforeDueDate: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>; declare const VendorSchema: z.ZodObject<{ id: z.ZodString; archived: z.ZodBoolean; name: z.ZodString; shortName: z.ZodOptional<z.ZodString>; accountNumber: z.ZodOptional<z.ZodString>; accountType: z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; NONE: "NONE"; UNDEFINED: "UNDEFINED"; }>; email: z.ZodOptional<z.ZodString>; phone: z.ZodOptional<z.ZodString>; address: z.ZodOptional<z.ZodObject<{ line1: z.ZodOptional<z.ZodString>; line2: z.ZodOptional<z.ZodString>; city: z.ZodOptional<z.ZodString>; stateOrProvince: z.ZodOptional<z.ZodString>; zipOrPostalCode: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; countryName: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; paymentInformation: z.ZodOptional<z.ZodObject<{ payeeName: z.ZodOptional<z.ZodString>; email: z.ZodOptional<z.ZodString>; lastPaymentDate: z.ZodOptional<z.ZodString>; payByType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ACH: "ACH"; CHECK: "CHECK"; VIRTUAL_CARD: "VIRTUAL_CARD"; RPPS: "RPPS"; }>>; payBySubType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{ NONE: "NONE"; UNDEFINED: "UNDEFINED"; MULTIPLE: "MULTIPLE"; LOCAL: "LOCAL"; WIRE: "WIRE"; }>>>; bankAccount: z.ZodOptional<z.ZodObject<{ nameOnAccount: z.ZodOptional<z.ZodString>; accountNumber: z.ZodOptional<z.ZodString>; routingNumber: z.ZodOptional<z.ZodString>; type: z.ZodOptional<z.ZodEnum<{ CHECKING: "CHECKING"; SAVINGS: "SAVINGS"; }>>; ownerType: z.ZodOptional<z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; }>>; paymentCurrency: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; virtualCard: z.ZodOptional<z.ZodObject<{ status: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; ENROLLED: "ENROLLED"; UNENROLLED: "UNENROLLED"; PENDING: "PENDING"; UNKNOWN: "UNKNOWN"; VERBAL_COMMITMENT: "VERBAL_COMMITMENT"; REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO"; }>>; remitEmail: z.ZodOptional<z.ZodString>; enrollDate: z.ZodOptional<z.ZodString>; declineDate: z.ZodOptional<z.ZodString>; alternatePayByType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; CREDIT_CARD: "CREDIT_CARD"; AMEX: "AMEX"; }>>; }, z.core.$strip>>; paymentPurpose: z.ZodOptional<z.ZodObject<{ text: z.ZodOptional<z.ZodString>; code: z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; value: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; }, z.core.$strip>>; additionalInfo: z.ZodOptional<z.ZodObject<{ taxId: z.ZodOptional<z.ZodString>; taxIdType: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; SSN: "SSN"; EIN: "EIN"; }>>; track1099: z.ZodOptional<z.ZodBoolean>; leadTimeInDays: z.ZodOptional<z.ZodNumber>; combinePayments: z.ZodOptional<z.ZodBoolean>; paymentTermId: z.ZodOptional<z.ZodString>; companyName: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; rppsId: z.ZodOptional<z.ZodString>; bankAccountStatus: z.ZodOptional<z.ZodString>; recurringPayments: z.ZodOptional<z.ZodBoolean>; billCurrency: z.ZodOptional<z.ZodString>; balance: z.ZodOptional<z.ZodObject<{ amount: z.ZodOptional<z.ZodNumber>; lastUpdatedDate: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; autoPay: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; bankAccountId: z.ZodOptional<z.ZodString>; createdBy: z.ZodOptional<z.ZodString>; maxAmount: z.ZodOptional<z.ZodNumber>; daysBeforeDueDate: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>>; networkStatus: z.ZodOptional<z.ZodString>; createdTime: z.ZodString; updatedTime: z.ZodString; }, z.core.$strip>; declare const CreateVendorRequestSchema: z.ZodObject<{ name: z.ZodString; accountType: z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; NONE: "NONE"; UNDEFINED: "UNDEFINED"; }>; email: z.ZodOptional<z.ZodString>; phone: z.ZodOptional<z.ZodString>; address: z.ZodOptional<z.ZodObject<{ line1: z.ZodOptional<z.ZodString>; line2: z.ZodOptional<z.ZodString>; city: z.ZodOptional<z.ZodString>; stateOrProvince: z.ZodOptional<z.ZodString>; zipOrPostalCode: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; countryName: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; paymentInformation: z.ZodOptional<z.ZodObject<{ payeeName: z.ZodOptional<z.ZodString>; bankAccount: z.ZodOptional<z.ZodObject<{ nameOnAccount: z.ZodOptional<z.ZodString>; accountNumber: z.ZodOptional<z.ZodString>; routingNumber: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; additionalInfo: z.ZodOptional<z.ZodObject<{ track1099: z.ZodOptional<z.ZodBoolean>; combinePayments: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>>; billCurrency: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const UpdateVendorRequestSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; accountType: z.ZodOptional<z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; NONE: "NONE"; UNDEFINED: "UNDEFINED"; }>>; email: z.ZodOptional<z.ZodString>; phone: z.ZodOptional<z.ZodString>; address: z.ZodOptional<z.ZodObject<{ line1: z.ZodOptional<z.ZodString>; line2: z.ZodOptional<z.ZodString>; city: z.ZodOptional<z.ZodString>; stateOrProvince: z.ZodOptional<z.ZodString>; zipOrPostalCode: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; countryName: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; paymentInformation: z.ZodOptional<z.ZodObject<{ payeeName: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; additionalInfo: z.ZodOptional<z.ZodObject<{ track1099: z.ZodOptional<z.ZodBoolean>; combinePayments: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>>; billCurrency: z.ZodOptional<z.ZodString>; autoPay: z.ZodOptional<z.ZodObject<{ enabled: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>>; }, z.core.$strip>; declare const VendorListParamsSchema: z.ZodObject<{ max: z.ZodOptional<z.ZodNumber>; page: z.ZodOptional<z.ZodString>; filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ in: "in"; nin: "nin"; }>; value: z.ZodArray<z.ZodString>; }, z.core.$strip>, z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ eq: "eq"; ne: "ne"; gt: "gt"; gte: "gte"; lt: "lt"; lte: "lte"; sw: "sw"; }>; value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>; }, z.core.$strip>]>>>; sort: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; order: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; }, z.core.$strip>>>; }, z.core.$strip>; type VendorAccountType = z.infer<typeof VendorAccountTypeSchema>; type VendorAddress = z.infer<typeof VendorAddressSchema>; type VendorBankAccount = z.infer<typeof VendorBankAccountSchema>; type VendorVirtualCard = z.infer<typeof VendorVirtualCardSchema>; type VendorPaymentInformation = z.infer<typeof VendorPaymentInformationSchema>; type VendorAdditionalInfo = z.infer<typeof VendorAdditionalInfoSchema>; type VendorBalance = z.infer<typeof VendorBalanceSchema>; type VendorAutoPay = z.infer<typeof VendorAutoPaySchema>; type Vendor = z.infer<typeof VendorSchema>; type CreateVendorRequest = z.infer<typeof CreateVendorRequestSchema>; type UpdateVendorRequest = z.infer<typeof UpdateVendorRequestSchema>; type VendorListParams = z.infer<typeof VendorListParamsSchema>; /** Valid payment statuses for a bill */ declare const BILL_PAYMENT_STATUSES: readonly ["PAID", "UNPAID", "PARTIAL", "SCHEDULED", "UNDEFINED"]; /** Valid approval statuses for a bill */ declare const BILL_APPROVAL_STATUSES: readonly ["UNASSIGNED", "ASSIGNED", "APPROVING", "APPROVED", "DENIED"]; /** Valid approver statuses */ declare const APPROVER_STATUSES: readonly ["WAITING", "APPROVED", "DENIED", "REROUTED", "UNDEFINED"]; /** Fields that can be used for filtering bills */ declare const BILL_FILTERABLE_FIELDS: readonly ["id", "archived", "vendorId", "amount", "dueDate", "paymentStatus", "approvalStatus", "createdTime", "updatedTime"]; /** Fields that can be used for sorting bills */ declare const BILL_SORTABLE_FIELDS: readonly ["dueDate", "amount", "createdTime", "updatedTime"]; declare const BillPaymentStatusSchema: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; UNPAID: "UNPAID"; PARTIAL: "PARTIAL"; SCHEDULED: "SCHEDULED"; }>; declare const BillApprovalStatusSchema: z.ZodEnum<{ UNASSIGNED: "UNASSIGNED"; ASSIGNED: "ASSIGNED"; APPROVING: "APPROVING"; APPROVED: "APPROVED"; DENIED: "DENIED"; }>; declare const ApproverStatusSchema: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; APPROVED: "APPROVED"; DENIED: "DENIED"; WAITING: "WAITING"; REROUTED: "REROUTED"; }>; declare const BillApproverSchema: z.ZodObject<{ userId: z.ZodString; status: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; APPROVED: "APPROVED"; DENIED: "DENIED"; WAITING: "WAITING"; REROUTED: "REROUTED"; }>; approverOrder: z.ZodNumber; statusChangedTime: z.ZodString; }, z.core.$strip>; declare const BillClassificationsSchema: z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const BillLineItemClassificationsSchema: z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; employeeId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const BillInvoiceSchema: z.ZodObject<{ invoiceNumber: z.ZodString; invoiceDate: z.ZodString; }, z.core.$strip>; declare const BillVendorCreditSchema: z.ZodObject<{ id: z.ZodString; amount: z.ZodNumber; }, z.core.$strip>; declare const BillLineItemSchema: z.ZodObject<{ id: z.ZodOptional<z.ZodString>; amount: z.ZodOptional<z.ZodNumber>; quantity: z.ZodOptional<z.ZodNumber>; price: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; employeeId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>; declare const BillSchema: z.ZodObject<{ id: z.ZodString; archived: z.ZodBoolean; vendorId: z.ZodOptional<z.ZodString>; vendorName: z.ZodOptional<z.ZodString>; fundingAmount: z.ZodOptional<z.ZodNumber>; amount: z.ZodOptional<z.ZodNumber>; paidAmount: z.ZodOptional<z.ZodNumber>; dueAmount: z.ZodOptional<z.ZodNumber>; scheduledAmount: z.ZodOptional<z.ZodNumber>; creditAmount: z.ZodNumber; exchangeRate: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; dueDate: z.ZodString; invoice: z.ZodObject<{ invoiceNumber: z.ZodString; invoiceDate: z.ZodString; }, z.core.$strip>; billLineItems: z.ZodArray<z.ZodObject<{ id: z.ZodOptional<z.ZodString>; amount: z.ZodOptional<z.ZodNumber>; quantity: z.ZodOptional<z.ZodNumber>; price: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; employeeId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; payFromChartOfAccountId: z.ZodOptional<z.ZodString>; paymentStatus: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; UNPAID: "UNPAID"; PARTIAL: "PARTIAL"; SCHEDULED: "SCHEDULED"; }>; approvalStatus: z.ZodEnum<{ UNASSIGNED: "UNASSIGNED"; ASSIGNED: "ASSIGNED"; APPROVING: "APPROVING"; APPROVED: "APPROVED"; DENIED: "DENIED"; }>; createdTime: z.ZodString; updatedTime: z.ZodString; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; approvers: z.ZodOptional<z.ZodArray<z.ZodObject<{ userId: z.ZodString; status: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; APPROVED: "APPROVED"; DENIED: "DENIED"; WAITING: "WAITING"; REROUTED: "REROUTED"; }>; approverOrder: z.ZodNumber; statusChangedTime: z.ZodString; }, z.core.$strip>>>; purchaseOrderNumber: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const CreateBillRequestSchema: z.ZodObject<{ vendorId: z.ZodString; description: z.ZodOptional<z.ZodString>; dueDate: z.ZodString; billLineItems: z.ZodArray<z.ZodObject<{ amount: z.ZodOptional<z.ZodNumber>; quantity: z.ZodOptional<z.ZodNumber>; price: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; employeeId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; invoice: z.ZodObject<{ invoiceNumber: z.ZodString; invoiceDate: z.ZodString; }, z.core.$strip>; payFromChartOfAccountId: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; vendorCredits: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; amount: z.ZodNumber; }, z.core.$strip>>>; purchaseOrderNumber: z.ZodOptional<z.ZodString>; billApprovals: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>; declare const UpdateBillRequestSchema: z.ZodObject<{ vendorId: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; dueDate: z.ZodOptional<z.ZodString>; billLineItems: z.ZodOptional<z.ZodArray<z.ZodObject<{ amount: z.ZodOptional<z.ZodNumber>; quantity: z.ZodOptional<z.ZodNumber>; price: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; employeeId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>>; invoice: z.ZodOptional<z.ZodObject<{ invoiceNumber: z.ZodString; invoiceDate: z.ZodString; }, z.core.$strip>>; payFromChartOfAccountId: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; vendorCredits: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; amount: z.ZodNumber; }, z.core.$strip>>>; purchaseOrderNumber: z.ZodOptional<z.ZodString>; billApprovals: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>; declare const BillListParamsSchema: z.ZodObject<{ max: z.ZodOptional<z.ZodNumber>; page: z.ZodOptional<z.ZodString>; filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ in: "in"; nin: "nin"; }>; value: z.ZodArray<z.ZodString>; }, z.core.$strip>, z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ eq: "eq"; ne: "ne"; gt: "gt"; gte: "gte"; lt: "lt"; lte: "lte"; sw: "sw"; }>; value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>; }, z.core.$strip>]>>>; sort: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; order: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; }, z.core.$strip>>>; }, z.core.$strip>; type BillPaymentStatus = z.infer<typeof BillPaymentStatusSchema>; type BillApprovalStatus = z.infer<typeof BillApprovalStatusSchema>; type ApproverStatus = z.infer<typeof ApproverStatusSchema>; type BillApprover = z.infer<typeof BillApproverSchema>; type BillClassifications = z.infer<typeof BillClassificationsSchema>; type BillLineItemClassifications = z.infer<typeof BillLineItemClassificationsSchema>; type BillInvoice = z.infer<typeof BillInvoiceSchema>; type BillVendorCredit = z.infer<typeof BillVendorCreditSchema>; type BillLineItem = z.infer<typeof BillLineItemSchema>; type Bill = z.infer<typeof BillSchema>; type CreateBillRequest = z.infer<typeof CreateBillRequestSchema>; type UpdateBillRequest = z.infer<typeof UpdateBillRequestSchema>; type BillListParams = z.infer<typeof BillListParamsSchema>; /** Valid account types for chart of accounts */ declare const ACCOUNT_TYPES: readonly ["UNSPECIFIED", "ACCOUNTS_PAYABLE", "ACCOUNTS_RECEIVABLE", "BANK", "COST_OF_GOODS_SOLD", "CREDIT_CARD", "EQUITY", "EXPENSE", "FIXED_ASSET", "INCOME", "LONG_TERM_LIABILITY", "OTHER_ASSET", "OTHER_CURRENT_ASSET", "OTHER_CURRENT_LIABILITY", "OTHER_EXPENSE", "OTHER_INCOME", "NON_POSTING"]; /** Fields that can be used for filtering chart of accounts */ declare const CHART_OF_ACCOUNT_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "parentId", "createdTime", "updatedTime"]; /** Fields that can be used for sorting chart of accounts */ declare const CHART_OF_ACCOUNT_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"]; declare const AccountTypeSchema: z.ZodEnum<{ CREDIT_CARD: "CREDIT_CARD"; UNSPECIFIED: "UNSPECIFIED"; ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE"; ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE"; BANK: "BANK"; COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD"; EQUITY: "EQUITY"; EXPENSE: "EXPENSE"; FIXED_ASSET: "FIXED_ASSET"; INCOME: "INCOME"; LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY"; OTHER_ASSET: "OTHER_ASSET"; OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET"; OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY"; OTHER_EXPENSE: "OTHER_EXPENSE"; OTHER_INCOME: "OTHER_INCOME"; NON_POSTING: "NON_POSTING"; }>; declare const ChartOfAccountSchema: z.ZodObject<{ id: z.ZodString; archived: z.ZodBoolean; name: z.ZodString; description: z.ZodOptional<z.ZodString>; parentId: z.ZodOptional<z.ZodString>; account: z.ZodObject<{ type: z.ZodEnum<{ CREDIT_CARD: "CREDIT_CARD"; UNSPECIFIED: "UNSPECIFIED"; ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE"; ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE"; BANK: "BANK"; COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD"; EQUITY: "EQUITY"; EXPENSE: "EXPENSE"; FIXED_ASSET: "FIXED_ASSET"; INCOME: "INCOME"; LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY"; OTHER_ASSET: "OTHER_ASSET"; OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET"; OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY"; OTHER_EXPENSE: "OTHER_EXPENSE"; OTHER_INCOME: "OTHER_INCOME"; NON_POSTING: "NON_POSTING"; }>; number: z.ZodOptional<z.ZodString>; }, z.core.$strip>; createdTime: z.ZodString; updatedTime: z.ZodString; }, z.core.$strip>; declare const CreateChartOfAccountRequestSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodOptional<z.ZodString>; parentId: z.ZodOptional<z.ZodString>; account: z.ZodObject<{ type: z.ZodEnum<{ CREDIT_CARD: "CREDIT_CARD"; UNSPECIFIED: "UNSPECIFIED"; ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE"; ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE"; BANK: "BANK"; COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD"; EQUITY: "EQUITY"; EXPENSE: "EXPENSE"; FIXED_ASSET: "FIXED_ASSET"; INCOME: "INCOME"; LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY"; OTHER_ASSET: "OTHER_ASSET"; OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET"; OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY"; OTHER_EXPENSE: "OTHER_EXPENSE"; OTHER_INCOME: "OTHER_INCOME"; NON_POSTING: "NON_POSTING"; }>; number: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }, z.core.$strip>; declare const UpdateChartOfAccountRequestSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; parentId: z.ZodOptional<z.ZodString>; account: z.ZodOptional<z.ZodObject<{ type: z.ZodOptional<z.ZodEnum<{ CREDIT_CARD: "CREDIT_CARD"; UNSPECIFIED: "UNSPECIFIED"; ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE"; ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE"; BANK: "BANK"; COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD"; EQUITY: "EQUITY"; EXPENSE: "EXPENSE"; FIXED_ASSET: "FIXED_ASSET"; INCOME: "INCOME"; LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY"; OTHER_ASSET: "OTHER_ASSET"; OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET"; OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY"; OTHER_EXPENSE: "OTHER_EXPENSE"; OTHER_INCOME: "OTHER_INCOME"; NON_POSTING: "NON_POSTING"; }>>; number: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>; declare const ChartOfAccountListParamsSchema: z.ZodObject<{ max: z.ZodOptional<z.ZodNumber>; page: z.ZodOptional<z.ZodString>; filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ in: "in"; nin: "nin"; }>; value: z.ZodArray<z.ZodString>; }, z.core.$strip>, z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ eq: "eq"; ne: "ne"; gt: "gt"; gte: "gte"; lt: "lt"; lte: "lte"; sw: "sw"; }>; value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>; }, z.core.$strip>]>>>; sort: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; order: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; }, z.core.$strip>>>; }, z.core.$strip>; type AccountType = z.infer<typeof AccountTypeSchema>; type ChartOfAccount = z.infer<typeof ChartOfAccountSchema>; type CreateChartOfAccountRequest = z.infer<typeof CreateChartOfAccountRequestSchema>; type UpdateChartOfAccountRequest = z.infer<typeof UpdateChartOfAccountRequestSchema>; type ChartOfAccountListParams = z.infer<typeof ChartOfAccountListParamsSchema>; /** Fields that can be used for filtering accounting classes */ declare const ACCOUNTING_CLASS_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "shortName", "parentId", "createdTime", "updatedTime"]; /** Fields that can be used for sorting accounting classes */ declare const ACCOUNTING_CLASS_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"]; declare const AccountingClassSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; shortName: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; parentId: z.ZodOptional<z.ZodString>; archived: z.ZodBoolean; createdTime: z.ZodString; updatedTime: z.ZodString; }, z.core.$strip>; declare const CreateAccountingClassRequestSchema: z.ZodObject<{ name: z.ZodString; shortName: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; parentId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const UpdateAccountingClassRequestSchema: z.ZodObject<{ name: z.ZodOptional<z.ZodString>; shortName: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; parentId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const AccountingClassListParamsSchema: z.ZodObject<{ max: z.ZodOptional<z.ZodNumber>; page: z.ZodOptional<z.ZodString>; filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ in: "in"; nin: "nin"; }>; value: z.ZodArray<z.ZodString>; }, z.core.$strip>, z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ eq: "eq"; ne: "ne"; gt: "gt"; gte: "gte"; lt: "lt"; lte: "lte"; sw: "sw"; }>; value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>; }, z.core.$strip>]>>>; sort: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; order: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; }, z.core.$strip>>>; }, z.core.$strip>; type AccountingClass = z.infer<typeof AccountingClassSchema>; type CreateAccountingClassRequest = z.infer<typeof CreateAccountingClassRequestSchema>; type UpdateAccountingClassRequest = z.infer<typeof UpdateAccountingClassRequestSchema>; type AccountingClassListParams = z.infer<typeof AccountingClassListParamsSchema>; /** Valid statuses for an invoice */ declare const INVOICE_STATUSES: readonly ["OPEN", "PARTIAL_PAYMENT", "PAID", "SCHEDULED", "VOID", "UNDEFINED"]; /** Valid payment statuses for invoice payments */ declare const INVOICE_PAYMENT_STATUSES: readonly ["PAID", "SCHEDULED", "UNDEFINED"]; /** Fields that can be used for filtering invoices */ declare const INVOICE_FILTERABLE_FIELDS: readonly ["id", "archived", "invoiceNumber", "customerId", "status", "dueDate", "invoiceDate", "totalAmount", "createdTime", "updatedTime"]; /** Fields that can be used for sorting invoices */ declare const INVOICE_SORTABLE_FIELDS: readonly ["invoiceDate", "dueDate", "totalAmount", "createdTime", "updatedTime"]; declare const InvoiceStatusSchema: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; SCHEDULED: "SCHEDULED"; OPEN: "OPEN"; PARTIAL_PAYMENT: "PARTIAL_PAYMENT"; VOID: "VOID"; }>; declare const InvoicePaymentStatusSchema: z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; SCHEDULED: "SCHEDULED"; }>; declare const InvoiceClassificationsSchema: z.ZodObject<{ accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const InvoiceLineItemClassificationsSchema: z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const InvoiceLineItemSchema: z.ZodObject<{ id: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; price: z.ZodOptional<z.ZodNumber>; quantity: z.ZodOptional<z.ZodNumber>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>; declare const InvoicePaymentSchema: z.ZodObject<{ id: z.ZodOptional<z.ZodString>; amount: z.ZodOptional<z.ZodNumber>; status: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; SCHEDULED: "SCHEDULED"; }>>; date: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const InvoiceConvenienceFeeSchema: z.ZodObject<{ percentage: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>; declare const InvoiceSchema: z.ZodObject<{ id: z.ZodString; archived: z.ZodBoolean; invoiceNumber: z.ZodOptional<z.ZodString>; invoiceDate: z.ZodOptional<z.ZodString>; dueDate: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; totalAmount: z.ZodOptional<z.ZodNumber>; dueAmount: z.ZodOptional<z.ZodNumber>; scheduledAmount: z.ZodOptional<z.ZodNumber>; creditAmount: z.ZodOptional<z.ZodNumber>; status: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; SCHEDULED: "SCHEDULED"; OPEN: "OPEN"; PARTIAL_PAYMENT: "PARTIAL_PAYMENT"; VOID: "VOID"; }>>; exchangeRate: z.ZodOptional<z.ZodNumber>; createdTime: z.ZodString; updatedTime: z.ZodString; invoiceLineItems: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; price: z.ZodOptional<z.ZodNumber>; quantity: z.ZodOptional<z.ZodNumber>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>>; payToChartOfAccountId: z.ZodOptional<z.ZodString>; payments: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodOptional<z.ZodString>; amount: z.ZodOptional<z.ZodNumber>; status: z.ZodOptional<z.ZodEnum<{ UNDEFINED: "UNDEFINED"; PAID: "PAID"; SCHEDULED: "SCHEDULED"; }>>; date: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; classifications: z.ZodOptional<z.ZodObject<{ accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; salesTaxItemId: z.ZodOptional<z.ZodString>; salesTaxTotal: z.ZodOptional<z.ZodNumber>; salesTaxPercentage: z.ZodOptional<z.ZodNumber>; enableCardPayment: z.ZodOptional<z.ZodBoolean>; convenienceFee: z.ZodOptional<z.ZodObject<{ percentage: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>>; invoicePdfId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const CreateInvoiceRequestSchema: z.ZodObject<{ invoiceNumber: z.ZodString; invoiceDate: z.ZodString; dueDate: z.ZodString; customer: z.ZodObject<{ id: z.ZodString; }, z.core.$strip>; invoiceLineItems: z.ZodArray<z.ZodObject<{ quantity: z.ZodOptional<z.ZodNumber>; price: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>; payToChartOfAccountId: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; salesTaxItemId: z.ZodOptional<z.ZodString>; salesTaxTotal: z.ZodOptional<z.ZodNumber>; salesTaxPercentage: z.ZodOptional<z.ZodNumber>; enableCardPayment: z.ZodOptional<z.ZodBoolean>; convenienceFee: z.ZodOptional<z.ZodObject<{ percentage: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>>; }, z.core.$strip>; declare const UpdateInvoiceRequestSchema: z.ZodObject<{ invoiceNumber: z.ZodOptional<z.ZodString>; invoiceDate: z.ZodOptional<z.ZodString>; dueDate: z.ZodOptional<z.ZodString>; customerId: z.ZodOptional<z.ZodString>; invoiceLineItems: z.ZodOptional<z.ZodArray<z.ZodObject<{ quantity: z.ZodOptional<z.ZodNumber>; price: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ chartOfAccountId: z.ZodOptional<z.ZodString>; accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; itemId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; }, z.core.$strip>>>; payToChartOfAccountId: z.ZodOptional<z.ZodString>; classifications: z.ZodOptional<z.ZodObject<{ accountingClassId: z.ZodOptional<z.ZodString>; departmentId: z.ZodOptional<z.ZodString>; jobId: z.ZodOptional<z.ZodString>; locationId: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; salesTaxItemId: z.ZodOptional<z.ZodString>; salesTaxTotal: z.ZodOptional<z.ZodNumber>; salesTaxPercentage: z.ZodOptional<z.ZodNumber>; enableCardPayment: z.ZodOptional<z.ZodBoolean>; convenienceFee: z.ZodOptional<z.ZodObject<{ percentage: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>>; }, z.core.$strip>; declare const InvoiceListParamsSchema: z.ZodObject<{ max: z.ZodOptional<z.ZodNumber>; page: z.ZodOptional<z.ZodString>; filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ in: "in"; nin: "nin"; }>; value: z.ZodArray<z.ZodString>; }, z.core.$strip>, z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<{ eq: "eq"; ne: "ne"; gt: "gt"; gte: "gte"; lt: "lt"; lte: "lte"; sw: "sw"; }>; value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>; }, z.core.$strip>]>>>; sort: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; order: z.ZodEnum<{ asc: "asc"; desc: "desc"; }>; }, z.core.$strip>>>; }, z.core.$strip>; type InvoiceStatus = z.infer<typeof InvoiceStatusSchema>; type InvoicePaymentStatus = z.infer<typeof InvoicePaymentStatusSchema>; type InvoiceClassifications = z.infer<typeof InvoiceClassificationsSchema>; type InvoiceLineItemClassifications = z.infer<typeof InvoiceLineItemClassificationsSchema>; type InvoiceLineItem = z.infer<typeof InvoiceLineItemSchema>; type InvoicePayment = z.infer<typeof InvoicePaymentSchema>; type InvoiceConvenienceFee = z.infer<typeof InvoiceConvenienceFeeSchema>; type Invoice = z.infer<typeof InvoiceSchema>; type CreateInvoiceRequest = z.infer<typeof CreateInvoiceRequestSchema>; type UpdateInvoiceRequest = z.infer<typeof UpdateInvoiceRequestSchema>; type InvoiceListParams = z.infer<typeof InvoiceListParamsSchema>; /** Valid account types for a customer */ declare const CUSTOMER_ACCOUNT_TYPES: readonly ["BUSINESS", "PERSON", "NONE"]; /** Fields that can be used for filtering customers */ declare const CUSTOMER_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "email", "companyName", "accountNumber", "createdTime", "updatedTime"]; /** Fields that can be used for sorting customers */ declare const CUSTOMER_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"]; declare const CustomerAccountTypeSchema: z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; NONE: "NONE"; }>; declare const CustomerContactSchema: z.ZodObject<{ firstName: z.ZodOptional<z.ZodString>; lastName: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const CustomerAddressSchema: z.ZodObject<{ city: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; line1: z.ZodOptional<z.ZodString>; zipOrPostalCode: z.ZodOptional<z.ZodString>; line2: z.ZodOptional<z.ZodString>; stateOrProvince: z.ZodOptional<z.ZodString>; countryName: z.ZodOptional<z.ZodString>; }, z.core.$strip>; declare const CustomerBalanceSchema: z.ZodObject<{ amount: z.ZodOptional<z.ZodNumber>; }, z.core.$strip>; declare const CustomerSchema: z.ZodObject<{ id: z.ZodString; archived: z.ZodBoolean; email: z.ZodOptional<z.ZodString>; name: z.ZodOptional<z.ZodString>; companyName: z.ZodOptional<z.ZodString>; contact: z.ZodOptional<z.ZodObject<{ firstName: z.ZodOptional<z.ZodString>; lastName: z.ZodOptional<z.ZodString>; }, z.core.$strip>>; phone: z.ZodOptional<z.ZodString>; fax: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; invoiceCurrency: z.ZodOptional<z.ZodString>; accountType: z.ZodOptional<z.ZodEnum<{ BUSINESS: "BUSINESS"; PERSON: "PERSON"; NONE: "NONE"; }>>; paymentTermId: z.ZodOptional<z.ZodString>; accountNumber: z.ZodOptional<z.ZodString>; billingAddress: z.ZodOptional<z.ZodObject<{ city: z.ZodOptional<z.ZodString>; country: z.ZodOptional<z.ZodString>; line1: z.ZodOptional<z.ZodString>; zipOrPostalCode: z.ZodOptional<z.ZodString>; line2: z.ZodOptional<z.ZodString>; stateOrProvince: z.ZodOptional<z.ZodString>; countryName: z.ZodOptional<z.ZodString>; }, z.core.$stri