import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { MessagingAttachment, MessagingAttachment$Outbound } from "./messagingattachment.js";
export declare enum MessagingMessage2 {
    True = "true",
    False = "false"
}
/**
 * The user active status
 */
export type MessagingMessageActive = boolean | MessagingMessage2;
/**
 * Author of the message
 */
export type Author = {
    /**
     * The user active status
     */
    active?: boolean | MessagingMessage2 | null | undefined;
    /**
     * The created_at date
     */
    createdAt?: Date | null | undefined;
    /**
     * The user email
     */
    email?: string | null | undefined;
    /**
     * The external ID associated with this user
     */
    externalReference?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The user name
     */
    name?: string | null | undefined;
    /**
     * The user phone number
     */
    phoneNumber?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The updated_at date
     */
    updatedAt?: Date | null | undefined;
};
/**
 * Content of the message
 */
export type MessagingMessageContent = {
    /**
     * HTML content of the message
     */
    html?: string | null | undefined;
    /**
     * Plain text content of the message
     */
    plain?: string | null | undefined;
};
export type MessagingMessage = {
    /**
     * List of attachments in the message
     */
    attachments?: Array<MessagingAttachment> | null | undefined;
    /**
     * Author of the message
     */
    author?: Author | null | undefined;
    /**
     * Content of the message
     */
    content?: MessagingMessageContent | null | undefined;
    /**
     * Timestamp when the message was created
     */
    createdAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * ID of the parent message if this is a reply
     */
    parentMessageId?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Timestamp when the message was last updated
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const MessagingMessage2$inboundSchema: z.ZodNativeEnum<typeof MessagingMessage2>;
/** @internal */
export declare const MessagingMessage2$outboundSchema: z.ZodNativeEnum<typeof MessagingMessage2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessage2$ {
    /** @deprecated use `MessagingMessage2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingMessage2>;
    /** @deprecated use `MessagingMessage2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingMessage2>;
}
/** @internal */
export declare const MessagingMessageActive$inboundSchema: z.ZodType<MessagingMessageActive, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageActive$Outbound = boolean | string;
/** @internal */
export declare const MessagingMessageActive$outboundSchema: z.ZodType<MessagingMessageActive$Outbound, z.ZodTypeDef, MessagingMessageActive>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageActive$ {
    /** @deprecated use `MessagingMessageActive$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageActive, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageActive$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageActive$Outbound, z.ZodTypeDef, MessagingMessageActive>;
    /** @deprecated use `MessagingMessageActive$Outbound` instead. */
    type Outbound = MessagingMessageActive$Outbound;
}
export declare function messagingMessageActiveToJSON(messagingMessageActive: MessagingMessageActive): string;
export declare function messagingMessageActiveFromJSON(jsonString: string): SafeParseResult<MessagingMessageActive, SDKValidationError>;
/** @internal */
export declare const Author$inboundSchema: z.ZodType<Author, z.ZodTypeDef, unknown>;
/** @internal */
export type Author$Outbound = {
    active?: boolean | string | null | undefined;
    created_at?: string | null | undefined;
    email?: string | null | undefined;
    external_reference?: string | null | undefined;
    id?: string | null | undefined;
    name?: string | null | undefined;
    phone_number?: string | null | undefined;
    remote_id?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const Author$outboundSchema: z.ZodType<Author$Outbound, z.ZodTypeDef, Author>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Author$ {
    /** @deprecated use `Author$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Author, z.ZodTypeDef, unknown>;
    /** @deprecated use `Author$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Author$Outbound, z.ZodTypeDef, Author>;
    /** @deprecated use `Author$Outbound` instead. */
    type Outbound = Author$Outbound;
}
export declare function authorToJSON(author: Author): string;
export declare function authorFromJSON(jsonString: string): SafeParseResult<Author, SDKValidationError>;
/** @internal */
export declare const MessagingMessageContent$inboundSchema: z.ZodType<MessagingMessageContent, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageContent$Outbound = {
    html?: string | null | undefined;
    plain?: string | null | undefined;
};
/** @internal */
export declare const MessagingMessageContent$outboundSchema: z.ZodType<MessagingMessageContent$Outbound, z.ZodTypeDef, MessagingMessageContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageContent$ {
    /** @deprecated use `MessagingMessageContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageContent$Outbound, z.ZodTypeDef, MessagingMessageContent>;
    /** @deprecated use `MessagingMessageContent$Outbound` instead. */
    type Outbound = MessagingMessageContent$Outbound;
}
export declare function messagingMessageContentToJSON(messagingMessageContent: MessagingMessageContent): string;
export declare function messagingMessageContentFromJSON(jsonString: string): SafeParseResult<MessagingMessageContent, SDKValidationError>;
/** @internal */
export declare const MessagingMessage$inboundSchema: z.ZodType<MessagingMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessage$Outbound = {
    attachments?: Array<MessagingAttachment$Outbound> | null | undefined;
    author?: Author$Outbound | null | undefined;
    content?: MessagingMessageContent$Outbound | null | undefined;
    created_at?: string | null | undefined;
    id?: string | null | undefined;
    parent_message_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const MessagingMessage$outboundSchema: z.ZodType<MessagingMessage$Outbound, z.ZodTypeDef, MessagingMessage>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessage$ {
    /** @deprecated use `MessagingMessage$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessage, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessage$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessage$Outbound, z.ZodTypeDef, MessagingMessage>;
    /** @deprecated use `MessagingMessage$Outbound` instead. */
    type Outbound = MessagingMessage$Outbound;
}
export declare function messagingMessageToJSON(messagingMessage: MessagingMessage): string;
export declare function messagingMessageFromJSON(jsonString: string): SafeParseResult<MessagingMessage, SDKValidationError>;
//# sourceMappingURL=messagingmessage.d.ts.map