import * as z from "zod/v3";
import { LineItemType } from "./lineitemtype.js";
import { LinkedInvoiceItem, LinkedInvoiceItem$Outbound } from "./linkedinvoiceitem.js";
import { LinkedLedgerAccount, LinkedLedgerAccount$Outbound } from "./linkedledgeraccount.js";
import { LinkedTaxRateInput, LinkedTaxRateInput$Outbound } from "./linkedtaxrateinput.js";
import { LinkedTrackingCategory, LinkedTrackingCategory$Outbound } from "./linkedtrackingcategory.js";
import { Rebilling, Rebilling$Outbound } from "./rebilling.js";
export type ExpenseLineItemInput = {
    /**
     * 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?: LinkedTaxRateInput | 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 type ExpenseLineItemInput$Outbound = {
    tracking_categories?: Array<LinkedTrackingCategory$Outbound | null> | null | undefined;
    account_id?: string | undefined;
    account?: LinkedLedgerAccount$Outbound | null | undefined;
    customer_id?: string | undefined;
    department_id?: string | null | undefined;
    location_id?: string | null | undefined;
    subsidiary_id?: string | null | undefined;
    tax_rate?: LinkedTaxRateInput$Outbound | undefined;
    description?: string | null | undefined;
    type?: string | null | undefined;
    total_amount: number | null;
    tax_amount?: number | null | undefined;
    quantity?: number | null | undefined;
    unit_price?: number | null | undefined;
    item?: LinkedInvoiceItem$Outbound | undefined;
    billable?: boolean | undefined;
    line_number?: number | null | undefined;
    rebilling?: Rebilling$Outbound | null | undefined;
};
/** @internal */
export declare const ExpenseLineItemInput$outboundSchema: z.ZodType<ExpenseLineItemInput$Outbound, z.ZodTypeDef, ExpenseLineItemInput>;
export declare function expenseLineItemInputToJSON(expenseLineItemInput: ExpenseLineItemInput): string;
//# sourceMappingURL=expenselineiteminput.d.ts.map