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 EmailMessagesMessageContent = {
    body?: string | null | undefined;
    from?: string | null | undefined;
    preheader?: string | null | undefined;
    replyTo?: string | null | undefined;
    subject?: string | null | undefined;
};
export type EmailMessages4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type EmailMessagesSourceValue = EmailMessages4 | string | number | boolean | Array<any>;
/**
 * The unified message type.
 */
export declare enum EmailMessagesValue {
    Email = "email",
    Sms = "sms",
    Push = "push",
    WebPush = "web_push",
    IosPush = "ios_push",
    AndroidPush = "android_push",
    AppPush = "app_push",
    OmniChannel = "omni_channel",
    ContentBlock = "content_block",
    InApp = "in_app",
    Unknown = "unknown",
    UnmappedValue = "unmapped_value"
}
/**
 * The unified message type.
 */
export type EmailMessagesValueOpen = OpenEnum<typeof EmailMessagesValue>;
export type EmailMessagesMessageType = {
    /**
     * The original value from the provider used to derive the unified message type.
     */
    sourceValue?: EmailMessages4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: EmailMessagesValueOpen | null | undefined;
};
export type EmailMessages = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: EmailMessagesMessageContent | null | undefined;
    messageType?: EmailMessagesMessageType | null | undefined;
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
/** @internal */
export declare const EmailMessagesMessageContent$inboundSchema: z.ZodType<EmailMessagesMessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type EmailMessagesMessageContent$Outbound = {
    body?: string | null | undefined;
    from?: string | null | undefined;
    preheader?: string | null | undefined;
    "reply-to"?: string | null | undefined;
    subject?: string | null | undefined;
};
/** @internal */
export declare const EmailMessagesMessageContent$outboundSchema: z.ZodType<EmailMessagesMessageContent$Outbound, z.ZodTypeDef, EmailMessagesMessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EmailMessagesMessageContent$ {
    /** @deprecated use `EmailMessagesMessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<EmailMessagesMessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `EmailMessagesMessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<EmailMessagesMessageContent$Outbound, z.ZodTypeDef, EmailMessagesMessageContent>;
    /** @deprecated use `EmailMessagesMessageContent$Outbound` instead. */
    type Outbound = EmailMessagesMessageContent$Outbound;
}
export declare function emailMessagesMessageContentToJSON(emailMessagesMessageContent: EmailMessagesMessageContent): string;
export declare function emailMessagesMessageContentFromJSON(jsonString: string): SafeParseResult<EmailMessagesMessageContent, SDKValidationError>;
/** @internal */
export declare const EmailMessages4$inboundSchema: z.ZodType<EmailMessages4, z.ZodTypeDef, unknown>;
/** @internal */
export type EmailMessages4$Outbound = {};
/** @internal */
export declare const EmailMessages4$outboundSchema: z.ZodType<EmailMessages4$Outbound, z.ZodTypeDef, EmailMessages4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EmailMessages4$ {
    /** @deprecated use `EmailMessages4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<EmailMessages4, z.ZodTypeDef, unknown>;
    /** @deprecated use `EmailMessages4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<EmailMessages4$Outbound, z.ZodTypeDef, EmailMessages4>;
    /** @deprecated use `EmailMessages4$Outbound` instead. */
    type Outbound = EmailMessages4$Outbound;
}
export declare function emailMessages4ToJSON(emailMessages4: EmailMessages4): string;
export declare function emailMessages4FromJSON(jsonString: string): SafeParseResult<EmailMessages4, SDKValidationError>;
/** @internal */
export declare const EmailMessagesSourceValue$inboundSchema: z.ZodType<EmailMessagesSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type EmailMessagesSourceValue$Outbound = EmailMessages4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const EmailMessagesSourceValue$outboundSchema: z.ZodType<EmailMessagesSourceValue$Outbound, z.ZodTypeDef, EmailMessagesSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EmailMessagesSourceValue$ {
    /** @deprecated use `EmailMessagesSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<EmailMessagesSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `EmailMessagesSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<EmailMessagesSourceValue$Outbound, z.ZodTypeDef, EmailMessagesSourceValue>;
    /** @deprecated use `EmailMessagesSourceValue$Outbound` instead. */
    type Outbound = EmailMessagesSourceValue$Outbound;
}
export declare function emailMessagesSourceValueToJSON(emailMessagesSourceValue: EmailMessagesSourceValue): string;
export declare function emailMessagesSourceValueFromJSON(jsonString: string): SafeParseResult<EmailMessagesSourceValue, SDKValidationError>;
/** @internal */
export declare const EmailMessagesValue$inboundSchema: z.ZodType<EmailMessagesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const EmailMessagesValue$outboundSchema: z.ZodType<EmailMessagesValueOpen, z.ZodTypeDef, EmailMessagesValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EmailMessagesValue$ {
    /** @deprecated use `EmailMessagesValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<EmailMessagesValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `EmailMessagesValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<EmailMessagesValueOpen, z.ZodTypeDef, EmailMessagesValueOpen>;
}
/** @internal */
export declare const EmailMessagesMessageType$inboundSchema: z.ZodType<EmailMessagesMessageType, z.ZodTypeDef, unknown>;
/** @internal */
export type EmailMessagesMessageType$Outbound = {
    source_value?: EmailMessages4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const EmailMessagesMessageType$outboundSchema: z.ZodType<EmailMessagesMessageType$Outbound, z.ZodTypeDef, EmailMessagesMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EmailMessagesMessageType$ {
    /** @deprecated use `EmailMessagesMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<EmailMessagesMessageType, z.ZodTypeDef, unknown>;
    /** @deprecated use `EmailMessagesMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<EmailMessagesMessageType$Outbound, z.ZodTypeDef, EmailMessagesMessageType>;
    /** @deprecated use `EmailMessagesMessageType$Outbound` instead. */
    type Outbound = EmailMessagesMessageType$Outbound;
}
export declare function emailMessagesMessageTypeToJSON(emailMessagesMessageType: EmailMessagesMessageType): string;
export declare function emailMessagesMessageTypeFromJSON(jsonString: string): SafeParseResult<EmailMessagesMessageType, SDKValidationError>;
/** @internal */
export declare const EmailMessages$inboundSchema: z.ZodType<EmailMessages, z.ZodTypeDef, unknown>;
/** @internal */
export type EmailMessages$Outbound = {
    id?: string | null | undefined;
    message_content?: EmailMessagesMessageContent$Outbound | null | undefined;
    message_type?: EmailMessagesMessageType$Outbound | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const EmailMessages$outboundSchema: z.ZodType<EmailMessages$Outbound, z.ZodTypeDef, EmailMessages>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EmailMessages$ {
    /** @deprecated use `EmailMessages$inboundSchema` instead. */
    const inboundSchema: z.ZodType<EmailMessages, z.ZodTypeDef, unknown>;
    /** @deprecated use `EmailMessages$outboundSchema` instead. */
    const outboundSchema: z.ZodType<EmailMessages$Outbound, z.ZodTypeDef, EmailMessages>;
    /** @deprecated use `EmailMessages$Outbound` instead. */
    type Outbound = EmailMessages$Outbound;
}
export declare function emailMessagesToJSON(emailMessages: EmailMessages): string;
export declare function emailMessagesFromJSON(jsonString: string): SafeParseResult<EmailMessages, SDKValidationError>;
//# sourceMappingURL=emailmessages.d.ts.map