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 PushMessagesMessageContent = {
    body?: string | null | undefined;
    subtitle?: string | null | undefined;
    title?: string | null | undefined;
};
export type PushMessages4 = {};
/**
 * The original value from the provider used to derive the unified message type.
 */
export type PushMessagesSourceValue = PushMessages4 | string | number | boolean | Array<any>;
/**
 * The unified message type.
 */
export declare enum PushMessagesValue {
    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 PushMessagesValueOpen = OpenEnum<typeof PushMessagesValue>;
export type PushMessagesMessageType = {
    /**
     * The original value from the provider used to derive the unified message type.
     */
    sourceValue?: PushMessages4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified message type.
     */
    value?: PushMessagesValueOpen | null | undefined;
};
export type PushMessages = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    messageContent?: PushMessagesMessageContent | null | undefined;
    messageType?: PushMessagesMessageType | null | undefined;
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
/** @internal */
export declare const PushMessagesMessageContent$inboundSchema: z.ZodType<PushMessagesMessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type PushMessagesMessageContent$Outbound = {
    body?: string | null | undefined;
    subtitle?: string | null | undefined;
    title?: string | null | undefined;
};
/** @internal */
export declare const PushMessagesMessageContent$outboundSchema: z.ZodType<PushMessagesMessageContent$Outbound, z.ZodTypeDef, PushMessagesMessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessagesMessageContent$ {
    /** @deprecated use `PushMessagesMessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessagesMessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessagesMessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessagesMessageContent$Outbound, z.ZodTypeDef, PushMessagesMessageContent>;
    /** @deprecated use `PushMessagesMessageContent$Outbound` instead. */
    type Outbound = PushMessagesMessageContent$Outbound;
}
export declare function pushMessagesMessageContentToJSON(pushMessagesMessageContent: PushMessagesMessageContent): string;
export declare function pushMessagesMessageContentFromJSON(jsonString: string): SafeParseResult<PushMessagesMessageContent, SDKValidationError>;
/** @internal */
export declare const PushMessages4$inboundSchema: z.ZodType<PushMessages4, z.ZodTypeDef, unknown>;
/** @internal */
export type PushMessages4$Outbound = {};
/** @internal */
export declare const PushMessages4$outboundSchema: z.ZodType<PushMessages4$Outbound, z.ZodTypeDef, PushMessages4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessages4$ {
    /** @deprecated use `PushMessages4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessages4, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessages4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessages4$Outbound, z.ZodTypeDef, PushMessages4>;
    /** @deprecated use `PushMessages4$Outbound` instead. */
    type Outbound = PushMessages4$Outbound;
}
export declare function pushMessages4ToJSON(pushMessages4: PushMessages4): string;
export declare function pushMessages4FromJSON(jsonString: string): SafeParseResult<PushMessages4, SDKValidationError>;
/** @internal */
export declare const PushMessagesSourceValue$inboundSchema: z.ZodType<PushMessagesSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type PushMessagesSourceValue$Outbound = PushMessages4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const PushMessagesSourceValue$outboundSchema: z.ZodType<PushMessagesSourceValue$Outbound, z.ZodTypeDef, PushMessagesSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessagesSourceValue$ {
    /** @deprecated use `PushMessagesSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessagesSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessagesSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessagesSourceValue$Outbound, z.ZodTypeDef, PushMessagesSourceValue>;
    /** @deprecated use `PushMessagesSourceValue$Outbound` instead. */
    type Outbound = PushMessagesSourceValue$Outbound;
}
export declare function pushMessagesSourceValueToJSON(pushMessagesSourceValue: PushMessagesSourceValue): string;
export declare function pushMessagesSourceValueFromJSON(jsonString: string): SafeParseResult<PushMessagesSourceValue, SDKValidationError>;
/** @internal */
export declare const PushMessagesValue$inboundSchema: z.ZodType<PushMessagesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const PushMessagesValue$outboundSchema: z.ZodType<PushMessagesValueOpen, z.ZodTypeDef, PushMessagesValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessagesValue$ {
    /** @deprecated use `PushMessagesValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessagesValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessagesValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessagesValueOpen, z.ZodTypeDef, PushMessagesValueOpen>;
}
/** @internal */
export declare const PushMessagesMessageType$inboundSchema: z.ZodType<PushMessagesMessageType, z.ZodTypeDef, unknown>;
/** @internal */
export type PushMessagesMessageType$Outbound = {
    source_value?: PushMessages4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const PushMessagesMessageType$outboundSchema: z.ZodType<PushMessagesMessageType$Outbound, z.ZodTypeDef, PushMessagesMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessagesMessageType$ {
    /** @deprecated use `PushMessagesMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessagesMessageType, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessagesMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessagesMessageType$Outbound, z.ZodTypeDef, PushMessagesMessageType>;
    /** @deprecated use `PushMessagesMessageType$Outbound` instead. */
    type Outbound = PushMessagesMessageType$Outbound;
}
export declare function pushMessagesMessageTypeToJSON(pushMessagesMessageType: PushMessagesMessageType): string;
export declare function pushMessagesMessageTypeFromJSON(jsonString: string): SafeParseResult<PushMessagesMessageType, SDKValidationError>;
/** @internal */
export declare const PushMessages$inboundSchema: z.ZodType<PushMessages, z.ZodTypeDef, unknown>;
/** @internal */
export type PushMessages$Outbound = {
    id?: string | null | undefined;
    message_content?: PushMessagesMessageContent$Outbound | null | undefined;
    message_type?: PushMessagesMessageType$Outbound | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const PushMessages$outboundSchema: z.ZodType<PushMessages$Outbound, z.ZodTypeDef, PushMessages>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PushMessages$ {
    /** @deprecated use `PushMessages$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PushMessages, z.ZodTypeDef, unknown>;
    /** @deprecated use `PushMessages$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PushMessages$Outbound, z.ZodTypeDef, PushMessages>;
    /** @deprecated use `PushMessages$Outbound` instead. */
    type Outbound = PushMessages$Outbound;
}
export declare function pushMessagesToJSON(pushMessages: PushMessages): string;
export declare function pushMessagesFromJSON(jsonString: string): SafeParseResult<PushMessages, SDKValidationError>;
//# sourceMappingURL=pushmessages.d.ts.map