import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { CustomerCancellationReason } from "./customercancellationreason.js";
import { RecurringInterval } from "./recurringinterval.js";
import { SubscriptionStatus } from "./subscriptionstatus.js";
export type CustomerOrderSubscription = {
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    /**
     * The ID of the object.
     */
    id: string;
    /**
     * The amount of the subscription.
     */
    amount: number;
    /**
     * The currency of the subscription.
     */
    currency: string;
    recurringInterval: RecurringInterval;
    /**
     * Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on.
     */
    recurringIntervalCount: number;
    status: SubscriptionStatus;
    /**
     * The start timestamp of the current billing period.
     */
    currentPeriodStart: Date;
    /**
     * The end timestamp of the current billing period.
     */
    currentPeriodEnd: Date;
    /**
     * The start timestamp of the current meter period, if the product has a meter cycle set. Metered credits are granted and overage is settled on this cadence.
     */
    currentMeterPeriodStart: Date | null;
    /**
     * The end timestamp of the current meter period, if the product has a meter cycle set. This is when credits next renew.
     */
    currentMeterPeriodEnd: Date | null;
    /**
     * The start timestamp of the trial period, if any.
     */
    trialStart: Date | null;
    /**
     * The end timestamp of the trial period, if any.
     */
    trialEnd: Date | null;
    /**
     * Whether the subscription will be canceled at the end of the current period.
     */
    cancelAtPeriodEnd: boolean;
    /**
     * The timestamp when the subscription was canceled. The subscription might still be active if `cancel_at_period_end` is `true`.
     */
    canceledAt: Date | null;
    /**
     * The timestamp when the subscription started.
     */
    startedAt: Date | null;
    /**
     * The timestamp when the subscription will end.
     */
    endsAt: Date | null;
    /**
     * The timestamp when the subscription ended.
     */
    endedAt: Date | null;
    /**
     * The timestamp when the subscription entered `past_due` status.
     */
    pastDueAt?: Date | null | undefined;
    /**
     * Whether the subscription will be paused at the end of the current period.
     */
    pauseAtPeriodEnd: boolean;
    /**
     * The timestamp when the subscription was paused.
     */
    pausedAt: Date | null;
    /**
     * The timestamp when a paused subscription is scheduled to automatically resume, if set.
     */
    resumesAt: Date | null;
    /**
     * The ID of the subscribed customer.
     */
    customerId: string;
    /**
     * The ID of the subscribed product.
     */
    productId: string;
    /**
     * The ID of the applied discount, if any.
     */
    discountId: string | null;
    checkoutId: string | null;
    /**
     * The number of seats for seat-based subscriptions. None for non-seat subscriptions.
     */
    seats?: number | null | undefined;
    customerCancellationReason: CustomerCancellationReason | null;
    customerCancellationComment: string | null;
};
/** @internal */
export declare const CustomerOrderSubscription$inboundSchema: z.ZodMiniType<CustomerOrderSubscription, unknown>;
export declare function customerOrderSubscriptionFromJSON(jsonString: string): SafeParseResult<CustomerOrderSubscription, SDKValidationError>;
//# sourceMappingURL=customerordersubscription.d.ts.map