import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { SupportCopilotMessage, SupportCopilotMessage$Outbound } from "./supportcopilotmessage.js";
export declare const SupportCopilotConversationType: {
    readonly SupportCopilot: "support_copilot";
};
export type SupportCopilotConversationType = ClosedEnum<typeof SupportCopilotConversationType>;
export declare const SupportCopilotConversationVisibility: {
    readonly Private: "private";
    readonly Public: "public";
};
export type SupportCopilotConversationVisibility = ClosedEnum<typeof SupportCopilotConversationVisibility>;
export type SupportCopilotConversation = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: SupportCopilotConversationType;
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    /**
     * A customizable collection of custom properties or attributes.
     */
    properties?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * A customizable collection of custom properties or attributes.
     */
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: SupportCopilotConversationVisibility | null;
    /**
     * The messages in the conversation. Must be at least one message.
     */
    messages: Array<SupportCopilotMessage>;
};
/** @internal */
export declare const SupportCopilotConversationType$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationType>;
/** @internal */
export declare const SupportCopilotConversationType$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationType$ {
    /** @deprecated use `SupportCopilotConversationType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly SupportCopilot: "support_copilot";
    }>;
    /** @deprecated use `SupportCopilotConversationType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly SupportCopilot: "support_copilot";
    }>;
}
/** @internal */
export declare const SupportCopilotConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationVisibility>;
/** @internal */
export declare const SupportCopilotConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationVisibility>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationVisibility$ {
    /** @deprecated use `SupportCopilotConversationVisibility$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
    /** @deprecated use `SupportCopilotConversationVisibility$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
}
/** @internal */
export declare const SupportCopilotConversation$inboundSchema: z.ZodType<SupportCopilotConversation, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversation$Outbound = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: string;
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: string | null;
    messages: Array<SupportCopilotMessage$Outbound>;
};
/** @internal */
export declare const SupportCopilotConversation$outboundSchema: z.ZodType<SupportCopilotConversation$Outbound, z.ZodTypeDef, SupportCopilotConversation>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversation$ {
    /** @deprecated use `SupportCopilotConversation$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotConversation, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotConversation$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotConversation$Outbound, z.ZodTypeDef, SupportCopilotConversation>;
    /** @deprecated use `SupportCopilotConversation$Outbound` instead. */
    type Outbound = SupportCopilotConversation$Outbound;
}
export declare function supportCopilotConversationToJSON(supportCopilotConversation: SupportCopilotConversation): string;
export declare function supportCopilotConversationFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversation, SDKValidationError>;
//# sourceMappingURL=supportcopilotconversation.d.ts.map