import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { MetadataOutputType, MetadataOutputType$Outbound } from "./metadataoutputtype.js";
import { RefundDispute, RefundDispute$Outbound } from "./refunddispute.js";
import { RefundReason } from "./refundreason.js";
import { RefundStatus } from "./refundstatus.js";
export type Refund = {
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    /**
     * The ID of the object.
     */
    id: string;
    metadata: {
        [k: string]: MetadataOutputType;
    };
    status: RefundStatus;
    reason: RefundReason;
    amount: number;
    taxAmount: number;
    currency: string;
    organizationId: string;
    orderId: string;
    subscriptionId: string | null;
    customerId: string;
    revokeBenefits: boolean;
    dispute: RefundDispute | null;
};
/** @internal */
export declare const Refund$inboundSchema: z.ZodMiniType<Refund, unknown>;
/** @internal */
export type Refund$Outbound = {
    created_at: string;
    modified_at: string | null;
    id: string;
    metadata: {
        [k: string]: MetadataOutputType$Outbound;
    };
    status: string;
    reason: string;
    amount: number;
    tax_amount: number;
    currency: string;
    organization_id: string;
    order_id: string;
    subscription_id: string | null;
    customer_id: string;
    revoke_benefits: boolean;
    dispute: RefundDispute$Outbound | null;
};
/** @internal */
export declare const Refund$outboundSchema: z.ZodMiniType<Refund$Outbound, Refund>;
export declare function refundToJSON(refund: Refund): string;
export declare function refundFromJSON(jsonString: string): SafeParseResult<Refund, SDKValidationError>;
//# sourceMappingURL=refund.d.ts.map