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 SmsMessagesMessageContent = {
    body?: string | null | undefined;
    from?: string | null | undefined;
};
export type SmsMessages4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type SmsMessagesSourceValue = SmsMessages4 | string | number | boolean | Array<any>;
/**
 * The unified message type.
 */
export declare enum SmsMessagesValue {
    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 SmsMessagesValueOpen = OpenEnum<typeof SmsMessagesValue>;
export type SmsMessagesMessageType = {
    /**
     * The original value from the provider used to derive the unified message type.
     */
    sourceValue?: SmsMessages4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: SmsMessagesValueOpen | null | undefined;
};
export type SmsMessages = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: SmsMessagesMessageContent | null | undefined;
    messageType?: SmsMessagesMessageType | null | undefined;
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
/** @internal */
export declare const SmsMessagesMessageContent$inboundSchema: z.ZodType<SmsMessagesMessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type SmsMessagesMessageContent$Outbound = {
    body?: string | null | undefined;
    from?: string | null | undefined;
};
/** @internal */
export declare const SmsMessagesMessageContent$outboundSchema: z.ZodType<SmsMessagesMessageContent$Outbound, z.ZodTypeDef, SmsMessagesMessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessagesMessageContent$ {
    /** @deprecated use `SmsMessagesMessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessagesMessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessagesMessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessagesMessageContent$Outbound, z.ZodTypeDef, SmsMessagesMessageContent>;
    /** @deprecated use `SmsMessagesMessageContent$Outbound` instead. */
    type Outbound = SmsMessagesMessageContent$Outbound;
}
export declare function smsMessagesMessageContentToJSON(smsMessagesMessageContent: SmsMessagesMessageContent): string;
export declare function smsMessagesMessageContentFromJSON(jsonString: string): SafeParseResult<SmsMessagesMessageContent, SDKValidationError>;
/** @internal */
export declare const SmsMessages4$inboundSchema: z.ZodType<SmsMessages4, z.ZodTypeDef, unknown>;
/** @internal */
export type SmsMessages4$Outbound = {};
/** @internal */
export declare const SmsMessages4$outboundSchema: z.ZodType<SmsMessages4$Outbound, z.ZodTypeDef, SmsMessages4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessages4$ {
    /** @deprecated use `SmsMessages4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessages4, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessages4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessages4$Outbound, z.ZodTypeDef, SmsMessages4>;
    /** @deprecated use `SmsMessages4$Outbound` instead. */
    type Outbound = SmsMessages4$Outbound;
}
export declare function smsMessages4ToJSON(smsMessages4: SmsMessages4): string;
export declare function smsMessages4FromJSON(jsonString: string): SafeParseResult<SmsMessages4, SDKValidationError>;
/** @internal */
export declare const SmsMessagesSourceValue$inboundSchema: z.ZodType<SmsMessagesSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type SmsMessagesSourceValue$Outbound = SmsMessages4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const SmsMessagesSourceValue$outboundSchema: z.ZodType<SmsMessagesSourceValue$Outbound, z.ZodTypeDef, SmsMessagesSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessagesSourceValue$ {
    /** @deprecated use `SmsMessagesSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessagesSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessagesSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessagesSourceValue$Outbound, z.ZodTypeDef, SmsMessagesSourceValue>;
    /** @deprecated use `SmsMessagesSourceValue$Outbound` instead. */
    type Outbound = SmsMessagesSourceValue$Outbound;
}
export declare function smsMessagesSourceValueToJSON(smsMessagesSourceValue: SmsMessagesSourceValue): string;
export declare function smsMessagesSourceValueFromJSON(jsonString: string): SafeParseResult<SmsMessagesSourceValue, SDKValidationError>;
/** @internal */
export declare const SmsMessagesValue$inboundSchema: z.ZodType<SmsMessagesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const SmsMessagesValue$outboundSchema: z.ZodType<SmsMessagesValueOpen, z.ZodTypeDef, SmsMessagesValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessagesValue$ {
    /** @deprecated use `SmsMessagesValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessagesValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessagesValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessagesValueOpen, z.ZodTypeDef, SmsMessagesValueOpen>;
}
/** @internal */
export declare const SmsMessagesMessageType$inboundSchema: z.ZodType<SmsMessagesMessageType, z.ZodTypeDef, unknown>;
/** @internal */
export type SmsMessagesMessageType$Outbound = {
    source_value?: SmsMessages4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const SmsMessagesMessageType$outboundSchema: z.ZodType<SmsMessagesMessageType$Outbound, z.ZodTypeDef, SmsMessagesMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessagesMessageType$ {
    /** @deprecated use `SmsMessagesMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessagesMessageType, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessagesMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessagesMessageType$Outbound, z.ZodTypeDef, SmsMessagesMessageType>;
    /** @deprecated use `SmsMessagesMessageType$Outbound` instead. */
    type Outbound = SmsMessagesMessageType$Outbound;
}
export declare function smsMessagesMessageTypeToJSON(smsMessagesMessageType: SmsMessagesMessageType): string;
export declare function smsMessagesMessageTypeFromJSON(jsonString: string): SafeParseResult<SmsMessagesMessageType, SDKValidationError>;
/** @internal */
export declare const SmsMessages$inboundSchema: z.ZodType<SmsMessages, z.ZodTypeDef, unknown>;
/** @internal */
export type SmsMessages$Outbound = {
    id?: string | null | undefined;
    message_content?: SmsMessagesMessageContent$Outbound | null | undefined;
    message_type?: SmsMessagesMessageType$Outbound | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const SmsMessages$outboundSchema: z.ZodType<SmsMessages$Outbound, z.ZodTypeDef, SmsMessages>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SmsMessages$ {
    /** @deprecated use `SmsMessages$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SmsMessages, z.ZodTypeDef, unknown>;
    /** @deprecated use `SmsMessages$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SmsMessages$Outbound, z.ZodTypeDef, SmsMessages>;
    /** @deprecated use `SmsMessages$Outbound` instead. */
    type Outbound = SmsMessages$Outbound;
}
export declare function smsMessagesToJSON(smsMessages: SmsMessages): string;
export declare function smsMessagesFromJSON(jsonString: string): SafeParseResult<SmsMessages, SDKValidationError>;
//# sourceMappingURL=smsmessages.d.ts.map