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";
import { RawResponse, RawResponse$Outbound } from "./rawresponse.js";
export declare enum MessagingMessageResult2 {
    True = "true",
    False = "false"
}
/**
 * The user active status
 */
export type MessagingMessageResultActive = boolean | MessagingMessageResult2;
/**
 * Author of the message
 */
export type MessagingMessageResultAuthor = {
    /**
     * The user active status
     */
    active?: boolean | MessagingMessageResult2 | 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 MessagingMessageResultContent = {
    /**
     * HTML content of the message
     */
    html?: string | null | undefined;
    /**
     * Plain text content of the message
     */
    plain?: string | null | undefined;
};
export type MessagingMessageResultData = {
    /**
     * List of attachments in the message
     */
    attachments?: Array<MessagingAttachment> | null | undefined;
    /**
     * Author of the message
     */
    author?: MessagingMessageResultAuthor | null | undefined;
    /**
     * Content of the message
     */
    content?: MessagingMessageResultContent | 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;
};
export type MessagingMessageResult = {
    data?: MessagingMessageResultData | null | undefined;
    raw?: Array<RawResponse> | null | undefined;
};
/** @internal */
export declare const MessagingMessageResult2$inboundSchema: z.ZodNativeEnum<typeof MessagingMessageResult2>;
/** @internal */
export declare const MessagingMessageResult2$outboundSchema: z.ZodNativeEnum<typeof MessagingMessageResult2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageResult2$ {
    /** @deprecated use `MessagingMessageResult2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingMessageResult2>;
    /** @deprecated use `MessagingMessageResult2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingMessageResult2>;
}
/** @internal */
export declare const MessagingMessageResultActive$inboundSchema: z.ZodType<MessagingMessageResultActive, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageResultActive$Outbound = boolean | string;
/** @internal */
export declare const MessagingMessageResultActive$outboundSchema: z.ZodType<MessagingMessageResultActive$Outbound, z.ZodTypeDef, MessagingMessageResultActive>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageResultActive$ {
    /** @deprecated use `MessagingMessageResultActive$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageResultActive, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageResultActive$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageResultActive$Outbound, z.ZodTypeDef, MessagingMessageResultActive>;
    /** @deprecated use `MessagingMessageResultActive$Outbound` instead. */
    type Outbound = MessagingMessageResultActive$Outbound;
}
export declare function messagingMessageResultActiveToJSON(messagingMessageResultActive: MessagingMessageResultActive): string;
export declare function messagingMessageResultActiveFromJSON(jsonString: string): SafeParseResult<MessagingMessageResultActive, SDKValidationError>;
/** @internal */
export declare const MessagingMessageResultAuthor$inboundSchema: z.ZodType<MessagingMessageResultAuthor, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageResultAuthor$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 MessagingMessageResultAuthor$outboundSchema: z.ZodType<MessagingMessageResultAuthor$Outbound, z.ZodTypeDef, MessagingMessageResultAuthor>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageResultAuthor$ {
    /** @deprecated use `MessagingMessageResultAuthor$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageResultAuthor, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageResultAuthor$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageResultAuthor$Outbound, z.ZodTypeDef, MessagingMessageResultAuthor>;
    /** @deprecated use `MessagingMessageResultAuthor$Outbound` instead. */
    type Outbound = MessagingMessageResultAuthor$Outbound;
}
export declare function messagingMessageResultAuthorToJSON(messagingMessageResultAuthor: MessagingMessageResultAuthor): string;
export declare function messagingMessageResultAuthorFromJSON(jsonString: string): SafeParseResult<MessagingMessageResultAuthor, SDKValidationError>;
/** @internal */
export declare const MessagingMessageResultContent$inboundSchema: z.ZodType<MessagingMessageResultContent, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageResultContent$Outbound = {
    html?: string | null | undefined;
    plain?: string | null | undefined;
};
/** @internal */
export declare const MessagingMessageResultContent$outboundSchema: z.ZodType<MessagingMessageResultContent$Outbound, z.ZodTypeDef, MessagingMessageResultContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageResultContent$ {
    /** @deprecated use `MessagingMessageResultContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageResultContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageResultContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageResultContent$Outbound, z.ZodTypeDef, MessagingMessageResultContent>;
    /** @deprecated use `MessagingMessageResultContent$Outbound` instead. */
    type Outbound = MessagingMessageResultContent$Outbound;
}
export declare function messagingMessageResultContentToJSON(messagingMessageResultContent: MessagingMessageResultContent): string;
export declare function messagingMessageResultContentFromJSON(jsonString: string): SafeParseResult<MessagingMessageResultContent, SDKValidationError>;
/** @internal */
export declare const MessagingMessageResultData$inboundSchema: z.ZodType<MessagingMessageResultData, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageResultData$Outbound = {
    attachments?: Array<MessagingAttachment$Outbound> | null | undefined;
    author?: MessagingMessageResultAuthor$Outbound | null | undefined;
    content?: MessagingMessageResultContent$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 MessagingMessageResultData$outboundSchema: z.ZodType<MessagingMessageResultData$Outbound, z.ZodTypeDef, MessagingMessageResultData>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageResultData$ {
    /** @deprecated use `MessagingMessageResultData$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageResultData, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageResultData$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageResultData$Outbound, z.ZodTypeDef, MessagingMessageResultData>;
    /** @deprecated use `MessagingMessageResultData$Outbound` instead. */
    type Outbound = MessagingMessageResultData$Outbound;
}
export declare function messagingMessageResultDataToJSON(messagingMessageResultData: MessagingMessageResultData): string;
export declare function messagingMessageResultDataFromJSON(jsonString: string): SafeParseResult<MessagingMessageResultData, SDKValidationError>;
/** @internal */
export declare const MessagingMessageResult$inboundSchema: z.ZodType<MessagingMessageResult, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingMessageResult$Outbound = {
    data?: MessagingMessageResultData$Outbound | null | undefined;
    raw?: Array<RawResponse$Outbound> | null | undefined;
};
/** @internal */
export declare const MessagingMessageResult$outboundSchema: z.ZodType<MessagingMessageResult$Outbound, z.ZodTypeDef, MessagingMessageResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingMessageResult$ {
    /** @deprecated use `MessagingMessageResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingMessageResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingMessageResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingMessageResult$Outbound, z.ZodTypeDef, MessagingMessageResult>;
    /** @deprecated use `MessagingMessageResult$Outbound` instead. */
    type Outbound = MessagingMessageResult$Outbound;
}
export declare function messagingMessageResultToJSON(messagingMessageResult: MessagingMessageResult): string;
export declare function messagingMessageResultFromJSON(jsonString: string): SafeParseResult<MessagingMessageResult, SDKValidationError>;
//# sourceMappingURL=messagingmessageresult.d.ts.map