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 InAppMessagesMessageContent = {
    body?: string | null | undefined;
};
export type InAppMessages4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type InAppMessagesSourceValue = InAppMessages4 | string | number | boolean | Array<any>;
/**
 * The unified message type.
 */
export declare enum InAppMessagesValue {
    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 InAppMessagesValueOpen = OpenEnum<typeof InAppMessagesValue>;
export type InAppMessagesMessageType = {
    /**
     * The original value from the provider used to derive the unified message type.
     */
    sourceValue?: InAppMessages4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: InAppMessagesValueOpen | null | undefined;
};
export type InAppMessages = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: InAppMessagesMessageContent | null | undefined;
    messageType?: InAppMessagesMessageType | null | undefined;
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
/** @internal */
export declare const InAppMessagesMessageContent$inboundSchema: z.ZodType<InAppMessagesMessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type InAppMessagesMessageContent$Outbound = {
    body?: string | null | undefined;
};
/** @internal */
export declare const InAppMessagesMessageContent$outboundSchema: z.ZodType<InAppMessagesMessageContent$Outbound, z.ZodTypeDef, InAppMessagesMessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InAppMessagesMessageContent$ {
    /** @deprecated use `InAppMessagesMessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InAppMessagesMessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `InAppMessagesMessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InAppMessagesMessageContent$Outbound, z.ZodTypeDef, InAppMessagesMessageContent>;
    /** @deprecated use `InAppMessagesMessageContent$Outbound` instead. */
    type Outbound = InAppMessagesMessageContent$Outbound;
}
export declare function inAppMessagesMessageContentToJSON(inAppMessagesMessageContent: InAppMessagesMessageContent): string;
export declare function inAppMessagesMessageContentFromJSON(jsonString: string): SafeParseResult<InAppMessagesMessageContent, SDKValidationError>;
/** @internal */
export declare const InAppMessages4$inboundSchema: z.ZodType<InAppMessages4, z.ZodTypeDef, unknown>;
/** @internal */
export type InAppMessages4$Outbound = {};
/** @internal */
export declare const InAppMessages4$outboundSchema: z.ZodType<InAppMessages4$Outbound, z.ZodTypeDef, InAppMessages4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InAppMessages4$ {
    /** @deprecated use `InAppMessages4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InAppMessages4, z.ZodTypeDef, unknown>;
    /** @deprecated use `InAppMessages4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InAppMessages4$Outbound, z.ZodTypeDef, InAppMessages4>;
    /** @deprecated use `InAppMessages4$Outbound` instead. */
    type Outbound = InAppMessages4$Outbound;
}
export declare function inAppMessages4ToJSON(inAppMessages4: InAppMessages4): string;
export declare function inAppMessages4FromJSON(jsonString: string): SafeParseResult<InAppMessages4, SDKValidationError>;
/** @internal */
export declare const InAppMessagesSourceValue$inboundSchema: z.ZodType<InAppMessagesSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type InAppMessagesSourceValue$Outbound = InAppMessages4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const InAppMessagesSourceValue$outboundSchema: z.ZodType<InAppMessagesSourceValue$Outbound, z.ZodTypeDef, InAppMessagesSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InAppMessagesSourceValue$ {
    /** @deprecated use `InAppMessagesSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InAppMessagesSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `InAppMessagesSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InAppMessagesSourceValue$Outbound, z.ZodTypeDef, InAppMessagesSourceValue>;
    /** @deprecated use `InAppMessagesSourceValue$Outbound` instead. */
    type Outbound = InAppMessagesSourceValue$Outbound;
}
export declare function inAppMessagesSourceValueToJSON(inAppMessagesSourceValue: InAppMessagesSourceValue): string;
export declare function inAppMessagesSourceValueFromJSON(jsonString: string): SafeParseResult<InAppMessagesSourceValue, SDKValidationError>;
/** @internal */
export declare const InAppMessagesValue$inboundSchema: z.ZodType<InAppMessagesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const InAppMessagesValue$outboundSchema: z.ZodType<InAppMessagesValueOpen, z.ZodTypeDef, InAppMessagesValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InAppMessagesValue$ {
    /** @deprecated use `InAppMessagesValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InAppMessagesValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `InAppMessagesValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InAppMessagesValueOpen, z.ZodTypeDef, InAppMessagesValueOpen>;
}
/** @internal */
export declare const InAppMessagesMessageType$inboundSchema: z.ZodType<InAppMessagesMessageType, z.ZodTypeDef, unknown>;
/** @internal */
export type InAppMessagesMessageType$Outbound = {
    source_value?: InAppMessages4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const InAppMessagesMessageType$outboundSchema: z.ZodType<InAppMessagesMessageType$Outbound, z.ZodTypeDef, InAppMessagesMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InAppMessagesMessageType$ {
    /** @deprecated use `InAppMessagesMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InAppMessagesMessageType, z.ZodTypeDef, unknown>;
    /** @deprecated use `InAppMessagesMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InAppMessagesMessageType$Outbound, z.ZodTypeDef, InAppMessagesMessageType>;
    /** @deprecated use `InAppMessagesMessageType$Outbound` instead. */
    type Outbound = InAppMessagesMessageType$Outbound;
}
export declare function inAppMessagesMessageTypeToJSON(inAppMessagesMessageType: InAppMessagesMessageType): string;
export declare function inAppMessagesMessageTypeFromJSON(jsonString: string): SafeParseResult<InAppMessagesMessageType, SDKValidationError>;
/** @internal */
export declare const InAppMessages$inboundSchema: z.ZodType<InAppMessages, z.ZodTypeDef, unknown>;
/** @internal */
export type InAppMessages$Outbound = {
    id?: string | null | undefined;
    message_content?: InAppMessagesMessageContent$Outbound | null | undefined;
    message_type?: InAppMessagesMessageType$Outbound | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const InAppMessages$outboundSchema: z.ZodType<InAppMessages$Outbound, z.ZodTypeDef, InAppMessages>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InAppMessages$ {
    /** @deprecated use `InAppMessages$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InAppMessages, z.ZodTypeDef, unknown>;
    /** @deprecated use `InAppMessages$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InAppMessages$Outbound, z.ZodTypeDef, InAppMessages>;
    /** @deprecated use `InAppMessages$Outbound` instead. */
    type Outbound = InAppMessages$Outbound;
}
export declare function inAppMessagesToJSON(inAppMessages: InAppMessages): string;
export declare function inAppMessagesFromJSON(jsonString: string): SafeParseResult<InAppMessages, SDKValidationError>;
//# sourceMappingURL=inappmessages.d.ts.map