import * as z from "zod/v4-mini";
import { CustomerCancellationReason } from "./customercancellationreason.js";
export type CustomerSubscriptionCancel = {
    /**
     * Cancel an active subscription once the current period ends.
     *
     * @remarks
     *
     * Or uncancel a subscription currently set to be revoked at period end.
     */
    cancelAtPeriodEnd?: boolean | null | undefined;
    /**
     * Customers reason for cancellation.
     *
     * @remarks
     *
     * * `too_expensive`: Too expensive for the customer.
     * * `missing_features`: Customer is missing certain features.
     * * `switched_service`: Customer switched to another service.
     * * `unused`: Customer is not using it enough.
     * * `customer_service`: Customer is not satisfied with the customer service.
     * * `low_quality`: Customer is unhappy with the quality.
     * * `too_complex`: Customer considers the service too complicated.
     * * `other`: Other reason(s).
     */
    cancellationReason?: CustomerCancellationReason | null | undefined;
    /**
     * Customer feedback and why they decided to cancel.
     */
    cancellationComment?: string | null | undefined;
};
/** @internal */
export type CustomerSubscriptionCancel$Outbound = {
    cancel_at_period_end?: boolean | null | undefined;
    cancellation_reason?: string | null | undefined;
    cancellation_comment?: string | null | undefined;
};
/** @internal */
export declare const CustomerSubscriptionCancel$outboundSchema: z.ZodMiniType<CustomerSubscriptionCancel$Outbound, CustomerSubscriptionCancel>;
export declare function customerSubscriptionCancelToJSON(customerSubscriptionCancel: CustomerSubscriptionCancel): string;
//# sourceMappingURL=customersubscriptioncancel.d.ts.map