import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Type of entity this payment should be attributed to.
 */
export declare const AllocationType: {
    readonly Invoice: "invoice";
    readonly Order: "order";
    readonly Expense: "expense";
    readonly CreditMemo: "credit_memo";
    readonly OverPayment: "over_payment";
    readonly PrePayment: "pre_payment";
    readonly JournalEntry: "journal_entry";
    readonly Other: "other";
    readonly Bill: "bill";
};
/**
 * Type of entity this payment should be attributed to.
 */
export type AllocationType = ClosedEnum<typeof AllocationType>;
export type Allocation = {
    /**
     * Unique identifier of entity this payment should be attributed to.
     */
    id?: string | undefined;
    /**
     * Type of entity this payment should be attributed to.
     */
    type?: AllocationType | undefined;
    code?: string | undefined;
    /**
     * Amount of payment that should be attributed to this allocation. If null, the total_amount will be used.
     */
    amount?: number | null | undefined;
    /**
     * Unique identifier of the allocation
     */
    allocationId?: string | undefined;
};
export type AllocationInput = {
    /**
     * Unique identifier of entity this payment should be attributed to.
     */
    id?: string | undefined;
    /**
     * Type of entity this payment should be attributed to.
     */
    type?: AllocationType | undefined;
    /**
     * Amount of payment that should be attributed to this allocation. If null, the total_amount will be used.
     */
    amount?: number | null | undefined;
    /**
     * Unique identifier of the allocation
     */
    allocationId?: string | undefined;
};
/** @internal */
export declare const AllocationType$inboundSchema: z.ZodNativeEnum<typeof AllocationType>;
/** @internal */
export declare const AllocationType$outboundSchema: z.ZodNativeEnum<typeof AllocationType>;
/** @internal */
export declare const Allocation$inboundSchema: z.ZodType<Allocation, z.ZodTypeDef, unknown>;
export declare function allocationFromJSON(jsonString: string): SafeParseResult<Allocation, SDKValidationError>;
/** @internal */
export type AllocationInput$Outbound = {
    id?: string | undefined;
    type?: string | undefined;
    amount?: number | null | undefined;
    allocation_id?: string | undefined;
};
/** @internal */
export declare const AllocationInput$outboundSchema: z.ZodType<AllocationInput$Outbound, z.ZodTypeDef, AllocationInput>;
export declare function allocationInputToJSON(allocationInput: AllocationInput): string;
//# sourceMappingURL=allocation.d.ts.map