import * as z from "zod/v4-mini";
import { ClosedEnum } from "../../types/enums.js";
export type RefundCreateMetadata = string | number | number | boolean;
/**
 * Reason for the refund.
 */
export declare const Reason: {
    readonly Duplicate: "duplicate";
    readonly Fraudulent: "fraudulent";
    readonly CustomerRequest: "customer_request";
    readonly ServiceDisruption: "service_disruption";
    readonly SatisfactionGuarantee: "satisfaction_guarantee";
    readonly Other: "other";
};
/**
 * Reason for the refund.
 */
export type Reason = ClosedEnum<typeof Reason>;
export type RefundCreate = {
    /**
     * Key-value object allowing you to store additional information.
     *
     * @remarks
     *
     * The key must be a string with a maximum length of **40 characters**.
     * The value must be either:
     *
     * * A string with a maximum length of **500 characters**
     * * An integer
     * * A floating-point number
     * * A boolean
     *
     * You can store up to **50 key-value pairs**.
     */
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    orderId: string;
    /**
     * Reason for the refund.
     */
    reason: Reason;
    /**
     * Amount to refund in cents. Minimum is 1.
     */
    amount: number;
    /**
     * An internal comment about the refund.
     */
    comment?: string | null | undefined;
    /**
     * Should this refund trigger the associated customer benefits to be revoked?
     *
     * @remarks
     *
     * **Note:**
     * Only allowed in case the `order` is a one-time purchase.
     * Subscriptions automatically revoke customer benefits once the
     * subscription itself is revoked, i.e fully canceled.
     */
    revokeBenefits?: boolean | undefined;
};
/** @internal */
export type RefundCreateMetadata$Outbound = string | number | number | boolean;
/** @internal */
export declare const RefundCreateMetadata$outboundSchema: z.ZodMiniType<RefundCreateMetadata$Outbound, RefundCreateMetadata>;
export declare function refundCreateMetadataToJSON(refundCreateMetadata: RefundCreateMetadata): string;
/** @internal */
export declare const Reason$outboundSchema: z.ZodMiniEnum<typeof Reason>;
/** @internal */
export type RefundCreate$Outbound = {
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    order_id: string;
    reason: string;
    amount: number;
    comment?: string | null | undefined;
    revoke_benefits: boolean;
};
/** @internal */
export declare const RefundCreate$outboundSchema: z.ZodMiniType<RefundCreate$Outbound, RefundCreate>;
export declare function refundCreateToJSON(refundCreate: RefundCreate): string;
//# sourceMappingURL=refundcreate.d.ts.map