import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type Four = {};
/**
 * The source value of the Channels.
 */
export type SourceValue = Four | string | number | boolean | Array<any>;
/**
 * The Channels of the campaign.
 */
export declare enum Value {
    Email = "email",
    Sms = "sms",
    WebPush = "web_push",
    IosPush = "ios_push",
    AndroidPush = "android_push",
    Unknown = "unknown",
    UnmappedValue = "unmapped_value"
}
/**
 * The Channels of the campaign.
 */
export type ValueOpen = OpenEnum<typeof Value>;
export type ChannelsEnum = {
    /**
     * The source value of the Channels.
     */
    sourceValue?: Four | string | number | boolean | Array<any> | null | undefined;
    /**
     * The Channels of the campaign.
     */
    value?: ValueOpen | null | undefined;
};
/** @internal */
export declare const Four$inboundSchema: z.ZodType<Four, z.ZodTypeDef, unknown>;
/** @internal */
export type Four$Outbound = {};
/** @internal */
export declare const Four$outboundSchema: z.ZodType<Four$Outbound, z.ZodTypeDef, Four>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Four$ {
    /** @deprecated use `Four$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Four, z.ZodTypeDef, unknown>;
    /** @deprecated use `Four$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Four$Outbound, z.ZodTypeDef, Four>;
    /** @deprecated use `Four$Outbound` instead. */
    type Outbound = Four$Outbound;
}
export declare function fourToJSON(four: Four): string;
export declare function fourFromJSON(jsonString: string): SafeParseResult<Four, SDKValidationError>;
/** @internal */
export declare const SourceValue$inboundSchema: z.ZodType<SourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type SourceValue$Outbound = Four$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const SourceValue$outboundSchema: z.ZodType<SourceValue$Outbound, z.ZodTypeDef, SourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SourceValue$ {
    /** @deprecated use `SourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `SourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SourceValue$Outbound, z.ZodTypeDef, SourceValue>;
    /** @deprecated use `SourceValue$Outbound` instead. */
    type Outbound = SourceValue$Outbound;
}
export declare function sourceValueToJSON(sourceValue: SourceValue): string;
export declare function sourceValueFromJSON(jsonString: string): SafeParseResult<SourceValue, SDKValidationError>;
/** @internal */
export declare const Value$inboundSchema: z.ZodType<ValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const Value$outboundSchema: z.ZodType<ValueOpen, z.ZodTypeDef, ValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Value$ {
    /** @deprecated use `Value$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `Value$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ValueOpen, z.ZodTypeDef, ValueOpen>;
}
/** @internal */
export declare const ChannelsEnum$inboundSchema: z.ZodType<ChannelsEnum, z.ZodTypeDef, unknown>;
/** @internal */
export type ChannelsEnum$Outbound = {
    source_value?: Four$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const ChannelsEnum$outboundSchema: z.ZodType<ChannelsEnum$Outbound, z.ZodTypeDef, ChannelsEnum>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ChannelsEnum$ {
    /** @deprecated use `ChannelsEnum$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ChannelsEnum, z.ZodTypeDef, unknown>;
    /** @deprecated use `ChannelsEnum$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ChannelsEnum$Outbound, z.ZodTypeDef, ChannelsEnum>;
    /** @deprecated use `ChannelsEnum$Outbound` instead. */
    type Outbound = ChannelsEnum$Outbound;
}
export declare function channelsEnumToJSON(channelsEnum: ChannelsEnum): string;
export declare function channelsEnumFromJSON(jsonString: string): SafeParseResult<ChannelsEnum, SDKValidationError>;
//# sourceMappingURL=channelsenum.d.ts.map