import * as z from "zod/v4-mini";
import { BenefitCustomCreateProperties, BenefitCustomCreateProperties$Outbound } from "./benefitcustomcreateproperties.js";
import { BenefitVisibility } from "./benefitvisibility.js";
export type BenefitCustomCreateMetadata = string | number | number | boolean;
/**
 * Schema to create a benefit of type `custom`.
 */
export type BenefitCustomCreate = {
    /**
     * 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;
    type: "custom";
    /**
     * The description of the benefit. Will be displayed on products having this benefit.
     */
    description: string;
    /**
     * The ID of the organization owning the benefit. **Required unless you use an organization token.**
     */
    organizationId?: string | null | undefined;
    /**
     * The visibility of the benefit in the customer portal.
     */
    visibility?: BenefitVisibility | null | undefined;
    /**
     * Properties for creating a benefit of type `custom`.
     */
    properties: BenefitCustomCreateProperties;
};
/** @internal */
export type BenefitCustomCreateMetadata$Outbound = string | number | number | boolean;
/** @internal */
export declare const BenefitCustomCreateMetadata$outboundSchema: z.ZodMiniType<BenefitCustomCreateMetadata$Outbound, BenefitCustomCreateMetadata>;
export declare function benefitCustomCreateMetadataToJSON(benefitCustomCreateMetadata: BenefitCustomCreateMetadata): string;
/** @internal */
export type BenefitCustomCreate$Outbound = {
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    type: "custom";
    description: string;
    organization_id?: string | null | undefined;
    visibility?: string | null | undefined;
    properties: BenefitCustomCreateProperties$Outbound;
};
/** @internal */
export declare const BenefitCustomCreate$outboundSchema: z.ZodMiniType<BenefitCustomCreate$Outbound, BenefitCustomCreate>;
export declare function benefitCustomCreateToJSON(benefitCustomCreate: BenefitCustomCreate): string;
//# sourceMappingURL=benefitcustomcreate.d.ts.map