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 { OpenAIChatCompletionMessage, OpenAIChatCompletionMessage$Outbound } from "./openaichatcompletionmessage.js";
import { OpenAIExtendedMessage, OpenAIExtendedMessage$Outbound } from "./openaiextendedmessage.js";
export declare const OpenAIConversationType: {
    readonly Openai: "openai";
};
export type OpenAIConversationType = ClosedEnum<typeof OpenAIConversationType>;
/**
 * 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;
    additionalProperties?: {
        [k: string]: any;
    };
};
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: OpenAIConversationType;
    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 OpenAIConversationType$inboundSchema: z.ZodNativeEnum<typeof OpenAIConversationType>;
/** @internal */
export declare const OpenAIConversationType$outboundSchema: z.ZodNativeEnum<typeof OpenAIConversationType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIConversationType$ {
    /** @deprecated use `OpenAIConversationType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Openai: "openai";
    }>;
    /** @deprecated use `OpenAIConversationType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Openai: "openai";
    }>;
}
/** @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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIConversationId$ {
    /** @deprecated use `OpenAIConversationId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIConversationId, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIConversationId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIConversationId$Outbound, z.ZodTypeDef, OpenAIConversationId>;
    /** @deprecated use `OpenAIConversationId$Outbound` instead. */
    type Outbound = OpenAIConversationId$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIConversationUserId$ {
    /** @deprecated use `OpenAIConversationUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIConversationUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIConversationUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIConversationUserId$Outbound, z.ZodTypeDef, OpenAIConversationUserId>;
    /** @deprecated use `OpenAIConversationUserId$Outbound` instead. */
    type Outbound = OpenAIConversationUserId$Outbound;
}
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;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const OpenAIConversationUserProperties$outboundSchema: z.ZodType<OpenAIConversationUserProperties$Outbound, z.ZodTypeDef, OpenAIConversationUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIConversationUserProperties$ {
    /** @deprecated use `OpenAIConversationUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIConversationUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIConversationUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIConversationUserProperties$Outbound, z.ZodTypeDef, OpenAIConversationUserProperties>;
    /** @deprecated use `OpenAIConversationUserProperties$Outbound` instead. */
    type Outbound = OpenAIConversationUserProperties$Outbound;
}
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
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIConversationVisibility$ {
    /** @deprecated use `OpenAIConversationVisibility$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
    /** @deprecated use `OpenAIConversationVisibility$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
}
/** @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: string;
    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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIConversation$ {
    /** @deprecated use `OpenAIConversation$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIConversation, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIConversation$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIConversation$Outbound, z.ZodTypeDef, OpenAIConversation>;
    /** @deprecated use `OpenAIConversation$Outbound` instead. */
    type Outbound = OpenAIConversation$Outbound;
}
export declare function openAIConversationToJSON(openAIConversation: OpenAIConversation): string;
export declare function openAIConversationFromJSON(jsonString: string): SafeParseResult<OpenAIConversation, SDKValidationError>;
//# sourceMappingURL=openaiconversation.d.ts.map