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 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 | PushMessageContentsSchemas | Schemas;
export type CreateMessage4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type CreateMessageSourceValue = CreateMessage4 | string | number | boolean | 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?: CreateMessage4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: CreateMessageValueOpen | null | undefined;
};
export type CreateMessage = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: SmsMessageContentsSchemas | PushMessageContentsSchemas | Schemas | 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 | PushMessageContentsSchemas | Schemas;
export type Message4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type MessageSourceValue = Message4 | string | number | boolean | 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?: Message4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: MessageValueOpen | null | undefined;
};
export type Message = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: SmsMessageContentsSchemas | PushMessageContentsSchemas | Schemas | 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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessageContentsSchemas$ {
    /** @deprecated use `PushMessageContentsSchemas$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessageContentsSchemas, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessageContentsSchemas$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessageContentsSchemas$Outbound, z.ZodTypeDef, PushMessageContentsSchemas>;
    /** @deprecated use `PushMessageContentsSchemas$Outbound` instead. */
    type Outbound = PushMessageContentsSchemas$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Schemas$ {
    /** @deprecated use `Schemas$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Schemas, z.ZodTypeDef, unknown>;
    /** @deprecated use `Schemas$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Schemas$Outbound, z.ZodTypeDef, Schemas>;
    /** @deprecated use `Schemas$Outbound` instead. */
    type Outbound = Schemas$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessageContentsSchemas$ {
    /** @deprecated use `SmsMessageContentsSchemas$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessageContentsSchemas, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessageContentsSchemas$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessageContentsSchemas$Outbound, z.ZodTypeDef, SmsMessageContentsSchemas>;
    /** @deprecated use `SmsMessageContentsSchemas$Outbound` instead. */
    type Outbound = SmsMessageContentsSchemas$Outbound;
}
export declare function smsMessageContentsSchemasToJSON(smsMessageContentsSchemas: SmsMessageContentsSchemas): string;
export declare function smsMessageContentsSchemasFromJSON(jsonString: string): SafeParseResult<SmsMessageContentsSchemas, SDKValidationError>;
/** @internal */
export declare const MessageContent$inboundSchema: z.ZodType<MessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type MessageContent$Outbound = SmsMessageContentsSchemas$Outbound | PushMessageContentsSchemas$Outbound | Schemas$Outbound;
/** @internal */
export declare const MessageContent$outboundSchema: z.ZodType<MessageContent$Outbound, z.ZodTypeDef, MessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessageContent$ {
    /** @deprecated use `MessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessageContent$Outbound, z.ZodTypeDef, MessageContent>;
    /** @deprecated use `MessageContent$Outbound` instead. */
    type Outbound = MessageContent$Outbound;
}
export declare function messageContentToJSON(messageContent: MessageContent): string;
export declare function messageContentFromJSON(jsonString: string): SafeParseResult<MessageContent, SDKValidationError>;
/** @internal */
export declare const CreateMessage4$inboundSchema: z.ZodType<CreateMessage4, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateMessage4$Outbound = {};
/** @internal */
export declare const CreateMessage4$outboundSchema: z.ZodType<CreateMessage4$Outbound, z.ZodTypeDef, CreateMessage4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateMessage4$ {
    /** @deprecated use `CreateMessage4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateMessage4, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateMessage4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateMessage4$Outbound, z.ZodTypeDef, CreateMessage4>;
    /** @deprecated use `CreateMessage4$Outbound` instead. */
    type Outbound = CreateMessage4$Outbound;
}
export declare function createMessage4ToJSON(createMessage4: CreateMessage4): string;
export declare function createMessage4FromJSON(jsonString: string): SafeParseResult<CreateMessage4, SDKValidationError>;
/** @internal */
export declare const CreateMessageSourceValue$inboundSchema: z.ZodType<CreateMessageSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateMessageSourceValue$Outbound = CreateMessage4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const CreateMessageSourceValue$outboundSchema: z.ZodType<CreateMessageSourceValue$Outbound, z.ZodTypeDef, CreateMessageSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateMessageSourceValue$ {
    /** @deprecated use `CreateMessageSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateMessageSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateMessageSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateMessageSourceValue$Outbound, z.ZodTypeDef, CreateMessageSourceValue>;
    /** @deprecated use `CreateMessageSourceValue$Outbound` instead. */
    type Outbound = CreateMessageSourceValue$Outbound;
}
export declare function createMessageSourceValueToJSON(createMessageSourceValue: CreateMessageSourceValue): string;
export declare function createMessageSourceValueFromJSON(jsonString: string): SafeParseResult<CreateMessageSourceValue, SDKValidationError>;
/** @internal */
export declare const CreateMessageValue$inboundSchema: z.ZodType<CreateMessageValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const CreateMessageValue$outboundSchema: z.ZodType<CreateMessageValueOpen, z.ZodTypeDef, CreateMessageValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateMessageValue$ {
    /** @deprecated use `CreateMessageValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateMessageValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateMessageValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateMessageValueOpen, z.ZodTypeDef, CreateMessageValueOpen>;
}
/** @internal */
export declare const MessageType$inboundSchema: z.ZodType<MessageType, z.ZodTypeDef, unknown>;
/** @internal */
export type MessageType$Outbound = {
    source_value?: CreateMessage4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const MessageType$outboundSchema: z.ZodType<MessageType$Outbound, z.ZodTypeDef, MessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessageType$ {
    /** @deprecated use `MessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessageType, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessageType$Outbound, z.ZodTypeDef, MessageType>;
    /** @deprecated use `MessageType$Outbound` instead. */
    type Outbound = MessageType$Outbound;
}
export declare function messageTypeToJSON(messageType: MessageType): string;
export declare function messageTypeFromJSON(jsonString: string): SafeParseResult<MessageType, SDKValidationError>;
/** @internal */
export declare const CreateMessage$inboundSchema: z.ZodType<CreateMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateMessage$Outbound = {
    id?: string | null | undefined;
    message_content?: SmsMessageContentsSchemas$Outbound | PushMessageContentsSchemas$Outbound | Schemas$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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateMessage$ {
    /** @deprecated use `CreateMessage$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateMessage, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateMessage$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateMessage$Outbound, z.ZodTypeDef, CreateMessage>;
    /** @deprecated use `CreateMessage$Outbound` instead. */
    type Outbound = CreateMessage$Outbound;
}
export declare function createMessageToJSON(createMessage: CreateMessage): string;
export declare function createMessageFromJSON(jsonString: string): SafeParseResult<CreateMessage, SDKValidationError>;
/** @internal */
export declare const MessageMessageContent$inboundSchema: z.ZodType<MessageMessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type MessageMessageContent$Outbound = SmsMessageContentsSchemas$Outbound | PushMessageContentsSchemas$Outbound | Schemas$Outbound;
/** @internal */
export declare const MessageMessageContent$outboundSchema: z.ZodType<MessageMessageContent$Outbound, z.ZodTypeDef, MessageMessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessageMessageContent$ {
    /** @deprecated use `MessageMessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessageMessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessageMessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessageMessageContent$Outbound, z.ZodTypeDef, MessageMessageContent>;
    /** @deprecated use `MessageMessageContent$Outbound` instead. */
    type Outbound = MessageMessageContent$Outbound;
}
export declare function messageMessageContentToJSON(messageMessageContent: MessageMessageContent): string;
export declare function messageMessageContentFromJSON(jsonString: string): SafeParseResult<MessageMessageContent, SDKValidationError>;
/** @internal */
export declare const Message4$inboundSchema: z.ZodType<Message4, z.ZodTypeDef, unknown>;
/** @internal */
export type Message4$Outbound = {};
/** @internal */
export declare const Message4$outboundSchema: z.ZodType<Message4$Outbound, z.ZodTypeDef, Message4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Message4$ {
    /** @deprecated use `Message4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Message4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Message4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Message4$Outbound, z.ZodTypeDef, Message4>;
    /** @deprecated use `Message4$Outbound` instead. */
    type Outbound = Message4$Outbound;
}
export declare function message4ToJSON(message4: Message4): string;
export declare function message4FromJSON(jsonString: string): SafeParseResult<Message4, SDKValidationError>;
/** @internal */
export declare const MessageSourceValue$inboundSchema: z.ZodType<MessageSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type MessageSourceValue$Outbound = Message4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const MessageSourceValue$outboundSchema: z.ZodType<MessageSourceValue$Outbound, z.ZodTypeDef, MessageSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessageSourceValue$ {
    /** @deprecated use `MessageSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessageSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessageSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessageSourceValue$Outbound, z.ZodTypeDef, MessageSourceValue>;
    /** @deprecated use `MessageSourceValue$Outbound` instead. */
    type Outbound = MessageSourceValue$Outbound;
}
export declare function messageSourceValueToJSON(messageSourceValue: MessageSourceValue): string;
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 MessageValue$outboundSchema: z.ZodType<MessageValueOpen, z.ZodTypeDef, MessageValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessageValue$ {
    /** @deprecated use `MessageValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessageValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessageValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessageValueOpen, z.ZodTypeDef, MessageValueOpen>;
}
/** @internal */
export declare const MessageMessageType$inboundSchema: z.ZodType<MessageMessageType, z.ZodTypeDef, unknown>;
/** @internal */
export type MessageMessageType$Outbound = {
    source_value?: Message4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const MessageMessageType$outboundSchema: z.ZodType<MessageMessageType$Outbound, z.ZodTypeDef, MessageMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessageMessageType$ {
    /** @deprecated use `MessageMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessageMessageType, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessageMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessageMessageType$Outbound, z.ZodTypeDef, MessageMessageType>;
    /** @deprecated use `MessageMessageType$Outbound` instead. */
    type Outbound = MessageMessageType$Outbound;
}
export declare function messageMessageTypeToJSON(messageMessageType: MessageMessageType): string;
export declare function messageMessageTypeFromJSON(jsonString: string): SafeParseResult<MessageMessageType, SDKValidationError>;
/** @internal */
export declare const Message$inboundSchema: z.ZodType<Message, z.ZodTypeDef, unknown>;
/** @internal */
export type Message$Outbound = {
    id?: string | null | undefined;
    message_content?: SmsMessageContentsSchemas$Outbound | PushMessageContentsSchemas$Outbound | Schemas$Outbound | null | undefined;
    message_type?: MessageMessageType$Outbound | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const Message$outboundSchema: z.ZodType<Message$Outbound, z.ZodTypeDef, Message>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Message$ {
    /** @deprecated use `Message$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Message, z.ZodTypeDef, unknown>;
    /** @deprecated use `Message$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Message$Outbound, z.ZodTypeDef, Message>;
    /** @deprecated use `Message$Outbound` instead. */
    type Outbound = Message$Outbound;
}
export declare function messageToJSON(message: Message): string;
export declare function messageFromJSON(jsonString: string): SafeParseResult<Message, SDKValidationError>;
//# sourceMappingURL=createmessage.d.ts.map