import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { OpenAIChatCompletionMessage, OpenAIChatCompletionMessage$Outbound } from "./openaichatcompletionmessage.js";
import { OpenAIExtendedMessage, OpenAIExtendedMessage$Outbound } from "./openaiextendedmessage.js";
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type OpenAIConversationId = string | number;
/**
 * The unique identifier for the user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
 */
export type OpenAIConversationUserId = string | number;
/**
 * A customizable collection of custom properties or attributes. Some properties have first class support for the Inkeep Portal or Widget and are noted in the description.
 */
export type OpenAIConversationUserProperties = {
    /**
     * The unique identifier for the user. This value is sent by the inkeep widget.
     */
    id?: string | number | null | undefined;
    /**
     * The type of identification for the user. This value is sent by the inkeep widget.
     */
    identificationType?: string | null | undefined;
    /**
     * The unique identifier for the user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    userId?: string | number | null | undefined;
    /**
     * The name of the support agent assigned to the user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    supportAgentName?: string | null | undefined;
    /**
     * The type of user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    userType?: string | null | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const OpenAIConversationVisibility: {
    readonly Private: "private";
    readonly Public: "public";
};
export type OpenAIConversationVisibility = ClosedEnum<typeof OpenAIConversationVisibility>;
export type OpenAIConversation = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: "openai";
    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. Some properties have first class support for the Inkeep Portal or Widget and are noted in the description.
     */
    userProperties?: OpenAIConversationUserProperties | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: OpenAIConversationVisibility | null;
    /**
     * The messages in the conversation. Must be at least one message.
     */
    messages: Array<OpenAIExtendedMessage>;
    messagesOpenAIFormat: Array<OpenAIChatCompletionMessage>;
};
/** @internal */
export declare const OpenAIConversationId$inboundSchema: z.ZodType<OpenAIConversationId, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIConversationId$Outbound = string | number;
/** @internal */
export declare const OpenAIConversationId$outboundSchema: z.ZodType<OpenAIConversationId$Outbound, z.ZodTypeDef, OpenAIConversationId>;
export declare function openAIConversationIdToJSON(openAIConversationId: OpenAIConversationId): string;
export declare function openAIConversationIdFromJSON(jsonString: string): SafeParseResult<OpenAIConversationId, SDKValidationError>;
/** @internal */
export declare const OpenAIConversationUserId$inboundSchema: z.ZodType<OpenAIConversationUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIConversationUserId$Outbound = string | number;
/** @internal */
export declare const OpenAIConversationUserId$outboundSchema: z.ZodType<OpenAIConversationUserId$Outbound, z.ZodTypeDef, OpenAIConversationUserId>;
export declare function openAIConversationUserIdToJSON(openAIConversationUserId: OpenAIConversationUserId): string;
export declare function openAIConversationUserIdFromJSON(jsonString: string): SafeParseResult<OpenAIConversationUserId, SDKValidationError>;
/** @internal */
export declare const OpenAIConversationUserProperties$inboundSchema: z.ZodType<OpenAIConversationUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIConversationUserProperties$Outbound = {
    id?: string | number | null | undefined;
    identificationType?: string | null | undefined;
    userId?: string | number | null | undefined;
    supportAgentName?: string | null | undefined;
    userType?: string | null | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const OpenAIConversationUserProperties$outboundSchema: z.ZodType<OpenAIConversationUserProperties$Outbound, z.ZodTypeDef, OpenAIConversationUserProperties>;
export declare function openAIConversationUserPropertiesToJSON(openAIConversationUserProperties: OpenAIConversationUserProperties): string;
export declare function openAIConversationUserPropertiesFromJSON(jsonString: string): SafeParseResult<OpenAIConversationUserProperties, SDKValidationError>;
/** @internal */
export declare const OpenAIConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof OpenAIConversationVisibility>;
/** @internal */
export declare const OpenAIConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof OpenAIConversationVisibility>;
/** @internal */
export declare const OpenAIConversation$inboundSchema: z.ZodType<OpenAIConversation, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIConversation$Outbound = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: "openai";
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: OpenAIConversationUserProperties$Outbound | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: string | null;
    messages: Array<OpenAIExtendedMessage$Outbound>;
    messagesOpenAIFormat: Array<OpenAIChatCompletionMessage$Outbound>;
};
/** @internal */
export declare const OpenAIConversation$outboundSchema: z.ZodType<OpenAIConversation$Outbound, z.ZodTypeDef, OpenAIConversation>;
export declare function openAIConversationToJSON(openAIConversation: OpenAIConversation): string;
export declare function openAIConversationFromJSON(jsonString: string): SafeParseResult<OpenAIConversation, SDKValidationError>;
//# sourceMappingURL=openaiconversation.d.ts.map