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 { LinkedInvoiceItem } from "./linkedinvoiceitem.js";
import { LinkedLedgerAccount } from "./linkedledgeraccount.js";
import { LinkedTaxRate } from "./linkedtaxrate.js";
import { LinkedTrackingCategory } from "./linkedtrackingcategory.js";
import { Rebilling } from "./rebilling.js";
export type ExpenseLineItem = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    /**
     * A list of linked tracking categories.
     */
    trackingCategories?: Array<LinkedTrackingCategory | null> | null | undefined;
    /**
     * The unique identifier for the ledger account. Deprecated, use account instead.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    accountId?: string | undefined;
    account?: LinkedLedgerAccount | null | undefined;
    /**
     * The ID of the customer this expense item is linked to.
     */
    customerId?: string | undefined;
    /**
     * The ID of the department
     */
    departmentId?: string | null | undefined;
    /**
     * The ID of the location
     */
    locationId?: string | null | undefined;
    /**
     * The ID of the subsidiary
     */
    subsidiaryId?: string | null | undefined;
    taxRate?: LinkedTaxRate | undefined;
    /**
     * The expense line item description
     */
    description?: string | null | undefined;
    /**
     * Line Item type
     */
    type?: LineItemType | null | undefined;
    /**
     * The total amount of the expense line item.
     */
    totalAmount: number | null;
    /**
     * Tax amount
     */
    taxAmount?: number | null | undefined;
    quantity?: number | null | undefined;
    unitPrice?: number | null | undefined;
    item?: LinkedInvoiceItem | undefined;
    /**
     * Boolean that indicates if the line item is billable or not.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    billable?: boolean | undefined;
    /**
     * Line number of the resource
     */
    lineNumber?: number | null | undefined;
    /**
     * Rebilling metadata for this line item.
     */
    rebilling?: Rebilling | null | undefined;
};
/** @internal */
export declare const ExpenseLineItem$inboundSchema: z.ZodType<ExpenseLineItem, z.ZodTypeDef, unknown>;
export declare function expenseLineItemFromJSON(jsonString: string): SafeParseResult<ExpenseLineItem, SDKValidationError>;
//# sourceMappingURL=expenselineitem.d.ts.map