import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { RawResponse, RawResponse$Outbound } from "./rawresponse.js";
export declare enum MessagingConversationResult2 {
    True = "true",
    False = "false"
}
/**
 * Whether the conversation is private
 */
export type MessagingConversationResultPrivate = boolean | MessagingConversationResult2;
export type MessagingConversationResultData = {
    /**
     * Timestamp when the conversation was created
     */
    createdAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * Timestamp of the last message in the conversation
     */
    lastMessageAt?: Date | null | undefined;
    /**
     * Name or title of the conversation
     */
    name?: string | null | undefined;
    /**
     * List of participant user IDs in the conversation
     */
    participants?: Array<string> | null | undefined;
    /**
     * Whether the conversation is private
     */
    private?: boolean | MessagingConversationResult2 | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
export type MessagingConversationResult = {
    data?: MessagingConversationResultData | null | undefined;
    raw?: Array<RawResponse> | null | undefined;
};
/** @internal */
export declare const MessagingConversationResult2$inboundSchema: z.ZodNativeEnum<typeof MessagingConversationResult2>;
/** @internal */
export declare const MessagingConversationResult2$outboundSchema: z.ZodNativeEnum<typeof MessagingConversationResult2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingConversationResult2$ {
    /** @deprecated use `MessagingConversationResult2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingConversationResult2>;
    /** @deprecated use `MessagingConversationResult2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingConversationResult2>;
}
/** @internal */
export declare const MessagingConversationResultPrivate$inboundSchema: z.ZodType<MessagingConversationResultPrivate, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingConversationResultPrivate$Outbound = boolean | string;
/** @internal */
export declare const MessagingConversationResultPrivate$outboundSchema: z.ZodType<MessagingConversationResultPrivate$Outbound, z.ZodTypeDef, MessagingConversationResultPrivate>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingConversationResultPrivate$ {
    /** @deprecated use `MessagingConversationResultPrivate$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingConversationResultPrivate, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingConversationResultPrivate$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingConversationResultPrivate$Outbound, z.ZodTypeDef, MessagingConversationResultPrivate>;
    /** @deprecated use `MessagingConversationResultPrivate$Outbound` instead. */
    type Outbound = MessagingConversationResultPrivate$Outbound;
}
export declare function messagingConversationResultPrivateToJSON(messagingConversationResultPrivate: MessagingConversationResultPrivate): string;
export declare function messagingConversationResultPrivateFromJSON(jsonString: string): SafeParseResult<MessagingConversationResultPrivate, SDKValidationError>;
/** @internal */
export declare const MessagingConversationResultData$inboundSchema: z.ZodType<MessagingConversationResultData, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingConversationResultData$Outbound = {
    created_at?: string | null | undefined;
    id?: string | null | undefined;
    last_message_at?: string | null | undefined;
    name?: string | null | undefined;
    participants?: Array<string> | null | undefined;
    private?: boolean | string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const MessagingConversationResultData$outboundSchema: z.ZodType<MessagingConversationResultData$Outbound, z.ZodTypeDef, MessagingConversationResultData>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingConversationResultData$ {
    /** @deprecated use `MessagingConversationResultData$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingConversationResultData, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingConversationResultData$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingConversationResultData$Outbound, z.ZodTypeDef, MessagingConversationResultData>;
    /** @deprecated use `MessagingConversationResultData$Outbound` instead. */
    type Outbound = MessagingConversationResultData$Outbound;
}
export declare function messagingConversationResultDataToJSON(messagingConversationResultData: MessagingConversationResultData): string;
export declare function messagingConversationResultDataFromJSON(jsonString: string): SafeParseResult<MessagingConversationResultData, SDKValidationError>;
/** @internal */
export declare const MessagingConversationResult$inboundSchema: z.ZodType<MessagingConversationResult, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingConversationResult$Outbound = {
    data?: MessagingConversationResultData$Outbound | null | undefined;
    raw?: Array<RawResponse$Outbound> | null | undefined;
};
/** @internal */
export declare const MessagingConversationResult$outboundSchema: z.ZodType<MessagingConversationResult$Outbound, z.ZodTypeDef, MessagingConversationResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingConversationResult$ {
    /** @deprecated use `MessagingConversationResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingConversationResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingConversationResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingConversationResult$Outbound, z.ZodTypeDef, MessagingConversationResult>;
    /** @deprecated use `MessagingConversationResult$Outbound` instead. */
    type Outbound = MessagingConversationResult$Outbound;
}
export declare function messagingConversationResultToJSON(messagingConversationResult: MessagingConversationResult): string;
export declare function messagingConversationResultFromJSON(jsonString: string): SafeParseResult<MessagingConversationResult, SDKValidationError>;
//# sourceMappingURL=messagingconversationresult.d.ts.map