import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { DiscountDuration } from "./discountduration.js";
import { DiscountProduct } from "./discountproduct.js";
import { DiscountType } from "./discounttype.js";
import { MetadataOutputType } from "./metadataoutputtype.js";
/**
 * Schema for a fixed amount discount that is applied once or forever.
 */
export type DiscountFixedOnceForeverDuration = {
    duration: DiscountDuration;
    type: DiscountType;
    /**
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    amount: number;
    /**
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    currency: string;
    /**
     * Map of currency to fixed amount to discount from the total.
     */
    amounts: {
        [k: string]: number;
    };
    /**
     * 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;
    };
    /**
     * 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.
     */
    code: string | null;
    /**
     * Timestamp after which the discount is redeemable.
     */
    startsAt: Date | null;
    /**
     * Timestamp after which the discount is no longer redeemable.
     */
    endsAt: Date | null;
    /**
     * Maximum number of times the discount can be redeemed.
     */
    maxRedemptions: number | null;
    /**
     * Number of times the discount has been redeemed.
     */
    redemptionsCount: number;
    /**
     * The organization ID.
     */
    organizationId: string;
    products: Array<DiscountProduct>;
};
/** @internal */
export declare const DiscountFixedOnceForeverDuration$inboundSchema: z.ZodMiniType<DiscountFixedOnceForeverDuration, unknown>;
export declare function discountFixedOnceForeverDurationFromJSON(jsonString: string): SafeParseResult<DiscountFixedOnceForeverDuration, SDKValidationError>;
//# sourceMappingURL=discountfixedonceforeverduration.d.ts.map