import * as z from "zod/v4-mini";
import { DiscountDuration } from "./discountduration.js";
import { PresentmentCurrency } from "./presentmentcurrency.js";
export type DiscountFixedCreateMetadata = string | number | number | boolean;
/**
 * Schema to create a fixed amount discount.
 */
export type DiscountFixedCreate = {
    /**
     * 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;
    /**
     * Name of the discount. Will be displayed to the customer when the discount is applied.
     */
    name: string;
    /**
     * Code customers can use to apply the discount during checkout. Must be between 3 and 256 characters long and contain only alphanumeric characters.If not provided, the discount can only be applied via the API.
     */
    code?: string | null | undefined;
    /**
     * Optional timestamp after which the discount is redeemable.
     */
    startsAt?: Date | null | undefined;
    /**
     * Optional timestamp after which the discount is no longer redeemable.
     */
    endsAt?: Date | null | undefined;
    /**
     * Optional maximum number of times the discount can be redeemed.
     */
    maxRedemptions?: number | null | undefined;
    products?: Array<string> | null | undefined;
    /**
     * The ID of the organization owning the discount. **Required unless you use an organization token.**
     */
    organizationId?: string | null | undefined;
    type: "fixed";
    duration: DiscountDuration;
    /**
     * Number of months the discount should be applied.
     *
     * @remarks
     *
     * Required when `duration` is `repeating`. Must be omitted otherwise.
     *
     * For this to work on yearly pricing, you should multiply this by 12.
     * For example, to apply the discount for 2 years, set this to 24.
     */
    durationInMonths?: number | null | undefined;
    /**
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    amount?: number | null | undefined;
    /**
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    currency?: PresentmentCurrency | null | undefined;
    amounts?: {
        [k: string]: number;
    } | null | undefined;
};
/** @internal */
export type DiscountFixedCreateMetadata$Outbound = string | number | number | boolean;
/** @internal */
export declare const DiscountFixedCreateMetadata$outboundSchema: z.ZodMiniType<DiscountFixedCreateMetadata$Outbound, DiscountFixedCreateMetadata>;
export declare function discountFixedCreateMetadataToJSON(discountFixedCreateMetadata: DiscountFixedCreateMetadata): string;
/** @internal */
export type DiscountFixedCreate$Outbound = {
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    name: string;
    code?: string | null | undefined;
    starts_at?: string | null | undefined;
    ends_at?: string | null | undefined;
    max_redemptions?: number | null | undefined;
    products?: Array<string> | null | undefined;
    organization_id?: string | null | undefined;
    type: "fixed";
    duration: string;
    duration_in_months?: number | null | undefined;
    amount?: number | null | undefined;
    currency?: string | null | undefined;
    amounts?: {
        [k: string]: number;
    } | null | undefined;
};
/** @internal */
export declare const DiscountFixedCreate$outboundSchema: z.ZodMiniType<DiscountFixedCreate$Outbound, DiscountFixedCreate>;
export declare function discountFixedCreateToJSON(discountFixedCreate: DiscountFixedCreate): string;
//# sourceMappingURL=discountfixedcreate.d.ts.map