import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type PushMessageContentsSchemas = {
    body?: string | null | undefined;
    subtitle?: string | null | undefined;
    title?: string | null | undefined;
};
export type Schemas = {
    body?: string | null | undefined;
    from?: string | null | undefined;
    preheader?: string | null | undefined;
    replyTo?: string | null | undefined;
    subject?: string | null | undefined;
};
export type SmsMessageContentsSchemas = {
    body?: string | null | undefined;
    from?: string | null | undefined;
};
export type MessageContent = SmsMessageContentsSchemas | Schemas | PushMessageContentsSchemas;
export type CreateMessage4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type CreateMessageSourceValue = string | number | boolean | CreateMessage4 | Array<any>;
/**
 * The unified message type.
 */
export declare enum CreateMessageValue {
    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 CreateMessageValueOpen = OpenEnum<typeof CreateMessageValue>;
/**
 * Stackone enum identifying the type of message associated with the content.
 */
export type MessageType = {
    /**
     * The original value from the provider used to derive the unified message type.
     */
    sourceValue?: string | number | boolean | CreateMessage4 | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: CreateMessageValueOpen | null | undefined;
};
export type CreateMessage = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: SmsMessageContentsSchemas | Schemas | PushMessageContentsSchemas | null | undefined;
    /**
     * Stackone enum identifying the type of message associated with the content.
     */
    messageType?: MessageType | null | undefined;
    name?: string | null | undefined;
};
export type MessageMessageContent = SmsMessageContentsSchemas | Schemas | PushMessageContentsSchemas;
export type Message4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type MessageSourceValue = string | number | boolean | Message4 | Array<any>;
/**
 * The unified message type.
 */
export declare enum MessageValue {
    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 MessageValueOpen = OpenEnum<typeof MessageValue>;
/**
 * Stackone enum identifying the type of message associated with the content.
 */
export type MessageMessageType = {
    /**
     * The original value from the provider used to derive the unified message type.
     */
    sourceValue?: string | number | boolean | Message4 | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: MessageValueOpen | null | undefined;
};
export type Message = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: SmsMessageContentsSchemas | Schemas | PushMessageContentsSchemas | null | undefined;
    /**
     * Stackone enum identifying the type of message associated with the content.
     */
    messageType?: MessageMessageType | null | undefined;
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
/** @internal */
export declare const PushMessageContentsSchemas$inboundSchema: z.ZodType<PushMessageContentsSchemas, z.ZodTypeDef, unknown>;
/** @internal */
export type PushMessageContentsSchemas$Outbound = {
    body?: string | null | undefined;
    subtitle?: string | null | undefined;
    title?: string | null | undefined;
};
/** @internal */
export declare const PushMessageContentsSchemas$outboundSchema: z.ZodType<PushMessageContentsSchemas$Outbound, z.ZodTypeDef, PushMessageContentsSchemas>;
export declare function pushMessageContentsSchemasToJSON(pushMessageContentsSchemas: PushMessageContentsSchemas): string;
export declare function pushMessageContentsSchemasFromJSON(jsonString: string): SafeParseResult<PushMessageContentsSchemas, SDKValidationError>;
/** @internal */
export declare const Schemas$inboundSchema: z.ZodType<Schemas, z.ZodTypeDef, unknown>;
/** @internal */
export type Schemas$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 Schemas$outboundSchema: z.ZodType<Schemas$Outbound, z.ZodTypeDef, Schemas>;
export declare function schemasToJSON(schemas: Schemas): string;
export declare function schemasFromJSON(jsonString: string): SafeParseResult<Schemas, SDKValidationError>;
/** @internal */
export declare const SmsMessageContentsSchemas$inboundSchema: z.ZodType<SmsMessageContentsSchemas, z.ZodTypeDef, unknown>;
/** @internal */
export type SmsMessageContentsSchemas$Outbound = {
    body?: string | null | undefined;
    from?: string | null | undefined;
};
/** @internal */
export declare const SmsMessageContentsSchemas$outboundSchema: z.ZodType<SmsMessageContentsSchemas$Outbound, z.ZodTypeDef, SmsMessageContentsSchemas>;
export declare function smsMessageContentsSchemasToJSON(smsMessageContentsSchemas: SmsMessageContentsSchemas): string;
export declare function smsMessageContentsSchemasFromJSON(jsonString: string): SafeParseResult<SmsMessageContentsSchemas, SDKValidationError>;
/** @internal */
export type MessageContent$Outbound = SmsMessageContentsSchemas$Outbound | Schemas$Outbound | PushMessageContentsSchemas$Outbound;
/** @internal */
export declare const MessageContent$outboundSchema: z.ZodType<MessageContent$Outbound, z.ZodTypeDef, MessageContent>;
export declare function messageContentToJSON(messageContent: MessageContent): string;
/** @internal */
export type CreateMessage4$Outbound = {};
/** @internal */
export declare const CreateMessage4$outboundSchema: z.ZodType<CreateMessage4$Outbound, z.ZodTypeDef, CreateMessage4>;
export declare function createMessage4ToJSON(createMessage4: CreateMessage4): string;
/** @internal */
export type CreateMessageSourceValue$Outbound = string | number | boolean | CreateMessage4$Outbound | Array<any>;
/** @internal */
export declare const CreateMessageSourceValue$outboundSchema: z.ZodType<CreateMessageSourceValue$Outbound, z.ZodTypeDef, CreateMessageSourceValue>;
export declare function createMessageSourceValueToJSON(createMessageSourceValue: CreateMessageSourceValue): string;
/** @internal */
export declare const CreateMessageValue$outboundSchema: z.ZodType<string, z.ZodTypeDef, CreateMessageValueOpen>;
/** @internal */
export type MessageType$Outbound = {
    source_value?: string | number | boolean | CreateMessage4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const MessageType$outboundSchema: z.ZodType<MessageType$Outbound, z.ZodTypeDef, MessageType>;
export declare function messageTypeToJSON(messageType: MessageType): string;
/** @internal */
export type CreateMessage$Outbound = {
    id?: string | null | undefined;
    message_content?: SmsMessageContentsSchemas$Outbound | Schemas$Outbound | PushMessageContentsSchemas$Outbound | null | undefined;
    message_type?: MessageType$Outbound | null | undefined;
    name?: string | null | undefined;
};
/** @internal */
export declare const CreateMessage$outboundSchema: z.ZodType<CreateMessage$Outbound, z.ZodTypeDef, CreateMessage>;
export declare function createMessageToJSON(createMessage: CreateMessage): string;
/** @internal */
export declare const MessageMessageContent$inboundSchema: z.ZodType<MessageMessageContent, z.ZodTypeDef, unknown>;
export declare function messageMessageContentFromJSON(jsonString: string): SafeParseResult<MessageMessageContent, SDKValidationError>;
/** @internal */
export declare const Message4$inboundSchema: z.ZodType<Message4, z.ZodTypeDef, unknown>;
export declare function message4FromJSON(jsonString: string): SafeParseResult<Message4, SDKValidationError>;
/** @internal */
export declare const MessageSourceValue$inboundSchema: z.ZodType<MessageSourceValue, z.ZodTypeDef, unknown>;
export declare function messageSourceValueFromJSON(jsonString: string): SafeParseResult<MessageSourceValue, SDKValidationError>;
/** @internal */
export declare const MessageValue$inboundSchema: z.ZodType<MessageValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const MessageMessageType$inboundSchema: z.ZodType<MessageMessageType, z.ZodTypeDef, unknown>;
export declare function messageMessageTypeFromJSON(jsonString: string): SafeParseResult<MessageMessageType, SDKValidationError>;
/** @internal */
export declare const Message$inboundSchema: z.ZodType<Message, z.ZodTypeDef, unknown>;
export declare function messageFromJSON(jsonString: string): SafeParseResult<Message, SDKValidationError>;
//# sourceMappingURL=createmessage.d.ts.map