import * as z from "zod/v4-mini";
import { BenefitDownloadablesCreateProperties, BenefitDownloadablesCreateProperties$Outbound } from "./benefitdownloadablescreateproperties.js";
import { BenefitVisibility } from "./benefitvisibility.js";
export type BenefitDownloadablesCreateMetadata = string | number | number | boolean;
export type BenefitDownloadablesCreate = {
    /**
     * 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: "downloadables";
    /**
     * 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: BenefitDownloadablesCreateProperties;
};
/** @internal */
export type BenefitDownloadablesCreateMetadata$Outbound = string | number | number | boolean;
/** @internal */
export declare const BenefitDownloadablesCreateMetadata$outboundSchema: z.ZodMiniType<BenefitDownloadablesCreateMetadata$Outbound, BenefitDownloadablesCreateMetadata>;
export declare function benefitDownloadablesCreateMetadataToJSON(benefitDownloadablesCreateMetadata: BenefitDownloadablesCreateMetadata): string;
/** @internal */
export type BenefitDownloadablesCreate$Outbound = {
    metadata?: {
        [k: string]: string | number | number | boolean;
    } | undefined;
    type: "downloadables";
    description: string;
    organization_id?: string | null | undefined;
    visibility?: string | null | undefined;
    properties: BenefitDownloadablesCreateProperties$Outbound;
};
/** @internal */
export declare const BenefitDownloadablesCreate$outboundSchema: z.ZodMiniType<BenefitDownloadablesCreate$Outbound, BenefitDownloadablesCreate>;
export declare function benefitDownloadablesCreateToJSON(benefitDownloadablesCreate: BenefitDownloadablesCreate): string;
//# sourceMappingURL=benefitdownloadablescreate.d.ts.map