import * as z from "zod/v3";
import { LineItemType } from "./lineitemtype.js";
import { LinkedCustomerInput, LinkedCustomerInput$Outbound } from "./linkedcustomerinput.js";
import { LinkedInvoiceItem, LinkedInvoiceItem$Outbound } from "./linkedinvoiceitem.js";
import { LinkedLedgerAccount, LinkedLedgerAccount$Outbound } from "./linkedledgeraccount.js";
import { LinkedPurchaseOrder, LinkedPurchaseOrder$Outbound } from "./linkedpurchaseorder.js";
import { LinkedTaxRateInput, LinkedTaxRateInput$Outbound } from "./linkedtaxrateinput.js";
import { LinkedTrackingCategory, LinkedTrackingCategory$Outbound } from "./linkedtrackingcategory.js";
import { LinkedWorktag, LinkedWorktag$Outbound } from "./linkedworktag.js";
import { Rebilling, Rebilling$Outbound } from "./rebilling.js";
export type BillLineItemInput = {
    /**
     * Row ID
     */
    rowId?: string | undefined;
    /**
     * User defined item code
     */
    code?: string | null | undefined;
    /**
     * Line number in the invoice
     */
    lineNumber?: number | null | undefined;
    /**
     * User defined description
     */
    description?: string | null | undefined;
    /**
     * Line Item type
     */
    type?: LineItemType | null | undefined;
    /**
     * Tax amount
     */
    taxAmount?: number | null | undefined;
    /**
     * Total amount of the line item
     */
    totalAmount?: number | null | undefined;
    quantity?: number | null | undefined;
    unitPrice?: number | null | undefined;
    /**
     * Description of the unit type the item is sold as, ie: kg, hour.
     */
    unitOfMeasure?: string | null | undefined;
    /**
     * Discount percentage applied to the line item when supported downstream.
     */
    discountPercentage?: number | null | undefined;
    /**
     * Discount amount applied to the line item when supported downstream.
     */
    discountAmount?: number | null | undefined;
    /**
     * The ID of the location
     */
    locationId?: string | null | undefined;
    /**
     * The ID of the department
     */
    departmentId?: string | null | undefined;
    /**
     * The ID of the subsidiary
     */
    subsidiaryId?: string | null | undefined;
    /**
     * ID of the category of the line item
     */
    categoryId?: string | null | undefined;
    /**
     * ID of the shipping of the line item
     */
    shippingId?: string | null | undefined;
    /**
     * Memo
     */
    memo?: string | null | undefined;
    /**
     * Whether the line item is prepaid
     */
    prepaid?: boolean | null | undefined;
    /**
     * Tax applicable on
     */
    taxApplicableOn?: string | null | undefined;
    /**
     * Tax recoverability
     */
    taxRecoverability?: string | null | undefined;
    /**
     * Method of tax calculation
     */
    taxMethod?: string | null | undefined;
    /**
     * Retention amount
     */
    retentionAmount?: number | null | undefined;
    /**
     * Payment amount
     */
    paymentAmount?: number | null | undefined;
    item?: LinkedInvoiceItem | undefined;
    taxRate?: LinkedTaxRateInput | undefined;
    ledgerAccount?: LinkedLedgerAccount | null | undefined;
    purchaseOrder?: LinkedPurchaseOrder | null | undefined;
    /**
     * A list of linked tracking categories.
     */
    trackingCategories?: Array<LinkedTrackingCategory | null> | null | undefined;
    /**
     * The customer this entity is linked to.
     */
    customer?: LinkedCustomerInput | null | undefined;
    /**
     * Rebilling metadata for this line item.
     */
    rebilling?: Rebilling | null | undefined;
    /**
     * A binary value used to detect updates to a object and prevent data conflicts. It is incremented each time an update is made to the object.
     */
    rowVersion?: string | null | undefined;
    /**
     * A list of linked worktags. This is only supported for Workday.
     */
    worktags?: Array<LinkedWorktag | null> | undefined;
};
/** @internal */
export type BillLineItemInput$Outbound = {
    row_id?: string | undefined;
    code?: string | null | undefined;
    line_number?: number | null | undefined;
    description?: string | null | undefined;
    type?: string | null | undefined;
    tax_amount?: number | null | undefined;
    total_amount?: number | null | undefined;
    quantity?: number | null | undefined;
    unit_price?: number | null | undefined;
    unit_of_measure?: string | null | undefined;
    discount_percentage?: number | null | undefined;
    discount_amount?: number | null | undefined;
    location_id?: string | null | undefined;
    department_id?: string | null | undefined;
    subsidiary_id?: string | null | undefined;
    category_id?: string | null | undefined;
    shipping_id?: string | null | undefined;
    memo?: string | null | undefined;
    prepaid?: boolean | null | undefined;
    tax_applicable_on?: string | null | undefined;
    tax_recoverability?: string | null | undefined;
    tax_method?: string | null | undefined;
    retention_amount?: number | null | undefined;
    payment_amount?: number | null | undefined;
    item?: LinkedInvoiceItem$Outbound | undefined;
    tax_rate?: LinkedTaxRateInput$Outbound | undefined;
    ledger_account?: LinkedLedgerAccount$Outbound | null | undefined;
    purchase_order?: LinkedPurchaseOrder$Outbound | null | undefined;
    tracking_categories?: Array<LinkedTrackingCategory$Outbound | null> | null | undefined;
    customer?: LinkedCustomerInput$Outbound | null | undefined;
    rebilling?: Rebilling$Outbound | null | undefined;
    row_version?: string | null | undefined;
    worktags?: Array<LinkedWorktag$Outbound | null> | undefined;
};
/** @internal */
export declare const BillLineItemInput$outboundSchema: z.ZodType<BillLineItemInput$Outbound, z.ZodTypeDef, BillLineItemInput>;
export declare function billLineItemInputToJSON(billLineItemInput: BillLineItemInput): string;
//# sourceMappingURL=billlineiteminput.d.ts.map