import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { LineItemType } from "./lineitemtype.js";
import { LinkedCustomer } from "./linkedcustomer.js";
import { LinkedInvoiceItem } from "./linkedinvoiceitem.js";
import { LinkedLedgerAccount } from "./linkedledgeraccount.js";
import { LinkedPurchaseOrder } from "./linkedpurchaseorder.js";
import { LinkedTaxRate } from "./linkedtaxrate.js";
import { LinkedTrackingCategory } from "./linkedtrackingcategory.js";
import { LinkedWorktag } from "./linkedworktag.js";
import { Rebilling } from "./rebilling.js";
export type BillLineItem = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    /**
     * 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?: LinkedTaxRate | 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?: LinkedCustomer | 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;
    /**
     * The user who last updated the object.
     */
    updatedBy?: string | null | undefined;
    /**
     * The user who created the object.
     */
    createdBy?: string | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * A list of linked worktags. This is only supported for Workday.
     */
    worktags?: Array<LinkedWorktag | null> | undefined;
};
/** @internal */
export declare const BillLineItem$inboundSchema: z.ZodType<BillLineItem, z.ZodTypeDef, unknown>;
export declare function billLineItemFromJSON(jsonString: string): SafeParseResult<BillLineItem, SDKValidationError>;
//# sourceMappingURL=billlineitem.d.ts.map