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 { OpenAIContentItem, OpenAIContentItem$Outbound } from "./openaicontentitem.js";
import { OpenAIToolCall, OpenAIToolCall$Outbound } from "./openaitoolcall.js";
export declare const OpenAIExtendedMessageType: {
    readonly Openai: "openai";
};
export type OpenAIExtendedMessageType = ClosedEnum<typeof OpenAIExtendedMessageType>;
export declare const Role: {
    readonly System: "system";
    readonly User: "user";
    readonly Assistant: "assistant";
};
export type Role = ClosedEnum<typeof Role>;
export type Content = string | Array<OpenAIContentItem>;
export declare const One: {
    readonly Documentation: "documentation";
    readonly Site: "site";
    readonly DiscoursePost: "discourse_post";
    readonly GithubIssue: "github_issue";
    readonly GithubDiscussion: "github_discussion";
    readonly StackoverflowQuestion: "stackoverflow_question";
    readonly DiscordForumPost: "discord_forum_post";
    readonly DiscordMessage: "discord_message";
    readonly CustomQuestionAnswer: "custom_question_answer";
};
export type One = ClosedEnum<typeof One>;
export type OpenAIExtendedMessageLinksType = One | string;
export type Links = {
    label?: string | null | undefined;
    url: string;
    title?: string | null | undefined;
    description?: string | null | undefined;
    type?: One | string | null | undefined;
    breadcrumbs?: Array<string> | null | undefined;
};
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type OpenAIExtendedMessageId = 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 OpenAIExtendedMessageUserId = 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 OpenAIExtendedMessageUserProperties = {
    /**
     * 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;
    };
};
/**
 * A message that includes the OpenAI chat completion details.
 */
export type OpenAIExtendedMessage = {
    id: string;
    type: OpenAIExtendedMessageType;
    externalId: string | null;
    externalUrl: string | null;
    conversationId: string;
    createdAt: string;
    updatedAt: string;
    role: Role;
    content: string | Array<OpenAIContentItem>;
    name?: string | null | undefined;
    links?: Array<Links> | null | undefined;
    /**
     * 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?: OpenAIExtendedMessageUserProperties | null | undefined;
    toolCalls?: Array<OpenAIToolCall> | null | undefined;
};
/** @internal */
export declare const OpenAIExtendedMessageType$inboundSchema: z.ZodNativeEnum<typeof OpenAIExtendedMessageType>;
/** @internal */
export declare const OpenAIExtendedMessageType$outboundSchema: z.ZodNativeEnum<typeof OpenAIExtendedMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIExtendedMessageType$ {
    /** @deprecated use `OpenAIExtendedMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Openai: "openai";
    }>;
    /** @deprecated use `OpenAIExtendedMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Openai: "openai";
    }>;
}
/** @internal */
export declare const Role$inboundSchema: z.ZodNativeEnum<typeof Role>;
/** @internal */
export declare const Role$outboundSchema: z.ZodNativeEnum<typeof Role>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Role$ {
    /** @deprecated use `Role$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly System: "system";
        readonly User: "user";
        readonly Assistant: "assistant";
    }>;
    /** @deprecated use `Role$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly System: "system";
        readonly User: "user";
        readonly Assistant: "assistant";
    }>;
}
/** @internal */
export declare const Content$inboundSchema: z.ZodType<Content, z.ZodTypeDef, unknown>;
/** @internal */
export type Content$Outbound = string | Array<OpenAIContentItem$Outbound>;
/** @internal */
export declare const Content$outboundSchema: z.ZodType<Content$Outbound, z.ZodTypeDef, Content>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Content$ {
    /** @deprecated use `Content$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Content, z.ZodTypeDef, unknown>;
    /** @deprecated use `Content$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Content$Outbound, z.ZodTypeDef, Content>;
    /** @deprecated use `Content$Outbound` instead. */
    type Outbound = Content$Outbound;
}
export declare function contentToJSON(content: Content): string;
export declare function contentFromJSON(jsonString: string): SafeParseResult<Content, SDKValidationError>;
/** @internal */
export declare const One$inboundSchema: z.ZodNativeEnum<typeof One>;
/** @internal */
export declare const One$outboundSchema: z.ZodNativeEnum<typeof One>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace One$ {
    /** @deprecated use `One$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Documentation: "documentation";
        readonly Site: "site";
        readonly DiscoursePost: "discourse_post";
        readonly GithubIssue: "github_issue";
        readonly GithubDiscussion: "github_discussion";
        readonly StackoverflowQuestion: "stackoverflow_question";
        readonly DiscordForumPost: "discord_forum_post";
        readonly DiscordMessage: "discord_message";
        readonly CustomQuestionAnswer: "custom_question_answer";
    }>;
    /** @deprecated use `One$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Documentation: "documentation";
        readonly Site: "site";
        readonly DiscoursePost: "discourse_post";
        readonly GithubIssue: "github_issue";
        readonly GithubDiscussion: "github_discussion";
        readonly StackoverflowQuestion: "stackoverflow_question";
        readonly DiscordForumPost: "discord_forum_post";
        readonly DiscordMessage: "discord_message";
        readonly CustomQuestionAnswer: "custom_question_answer";
    }>;
}
/** @internal */
export declare const OpenAIExtendedMessageLinksType$inboundSchema: z.ZodType<OpenAIExtendedMessageLinksType, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIExtendedMessageLinksType$Outbound = string | string;
/** @internal */
export declare const OpenAIExtendedMessageLinksType$outboundSchema: z.ZodType<OpenAIExtendedMessageLinksType$Outbound, z.ZodTypeDef, OpenAIExtendedMessageLinksType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIExtendedMessageLinksType$ {
    /** @deprecated use `OpenAIExtendedMessageLinksType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<string, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIExtendedMessageLinksType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<string, z.ZodTypeDef, string>;
    /** @deprecated use `OpenAIExtendedMessageLinksType$Outbound` instead. */
    type Outbound = OpenAIExtendedMessageLinksType$Outbound;
}
export declare function openAIExtendedMessageLinksTypeToJSON(openAIExtendedMessageLinksType: OpenAIExtendedMessageLinksType): string;
export declare function openAIExtendedMessageLinksTypeFromJSON(jsonString: string): SafeParseResult<OpenAIExtendedMessageLinksType, SDKValidationError>;
/** @internal */
export declare const Links$inboundSchema: z.ZodType<Links, z.ZodTypeDef, unknown>;
/** @internal */
export type Links$Outbound = {
    label?: string | null | undefined;
    url: string;
    title?: string | null | undefined;
    description?: string | null | undefined;
    type?: string | string | null | undefined;
    breadcrumbs?: Array<string> | null | undefined;
};
/** @internal */
export declare const Links$outboundSchema: z.ZodType<Links$Outbound, z.ZodTypeDef, Links>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Links$ {
    /** @deprecated use `Links$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Links, z.ZodTypeDef, unknown>;
    /** @deprecated use `Links$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Links$Outbound, z.ZodTypeDef, Links>;
    /** @deprecated use `Links$Outbound` instead. */
    type Outbound = Links$Outbound;
}
export declare function linksToJSON(links: Links): string;
export declare function linksFromJSON(jsonString: string): SafeParseResult<Links, SDKValidationError>;
/** @internal */
export declare const OpenAIExtendedMessageId$inboundSchema: z.ZodType<OpenAIExtendedMessageId, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIExtendedMessageId$Outbound = string | number;
/** @internal */
export declare const OpenAIExtendedMessageId$outboundSchema: z.ZodType<OpenAIExtendedMessageId$Outbound, z.ZodTypeDef, OpenAIExtendedMessageId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIExtendedMessageId$ {
    /** @deprecated use `OpenAIExtendedMessageId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIExtendedMessageId, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIExtendedMessageId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIExtendedMessageId$Outbound, z.ZodTypeDef, OpenAIExtendedMessageId>;
    /** @deprecated use `OpenAIExtendedMessageId$Outbound` instead. */
    type Outbound = OpenAIExtendedMessageId$Outbound;
}
export declare function openAIExtendedMessageIdToJSON(openAIExtendedMessageId: OpenAIExtendedMessageId): string;
export declare function openAIExtendedMessageIdFromJSON(jsonString: string): SafeParseResult<OpenAIExtendedMessageId, SDKValidationError>;
/** @internal */
export declare const OpenAIExtendedMessageUserId$inboundSchema: z.ZodType<OpenAIExtendedMessageUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIExtendedMessageUserId$Outbound = string | number;
/** @internal */
export declare const OpenAIExtendedMessageUserId$outboundSchema: z.ZodType<OpenAIExtendedMessageUserId$Outbound, z.ZodTypeDef, OpenAIExtendedMessageUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIExtendedMessageUserId$ {
    /** @deprecated use `OpenAIExtendedMessageUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIExtendedMessageUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIExtendedMessageUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIExtendedMessageUserId$Outbound, z.ZodTypeDef, OpenAIExtendedMessageUserId>;
    /** @deprecated use `OpenAIExtendedMessageUserId$Outbound` instead. */
    type Outbound = OpenAIExtendedMessageUserId$Outbound;
}
export declare function openAIExtendedMessageUserIdToJSON(openAIExtendedMessageUserId: OpenAIExtendedMessageUserId): string;
export declare function openAIExtendedMessageUserIdFromJSON(jsonString: string): SafeParseResult<OpenAIExtendedMessageUserId, SDKValidationError>;
/** @internal */
export declare const OpenAIExtendedMessageUserProperties$inboundSchema: z.ZodType<OpenAIExtendedMessageUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIExtendedMessageUserProperties$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 OpenAIExtendedMessageUserProperties$outboundSchema: z.ZodType<OpenAIExtendedMessageUserProperties$Outbound, z.ZodTypeDef, OpenAIExtendedMessageUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIExtendedMessageUserProperties$ {
    /** @deprecated use `OpenAIExtendedMessageUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIExtendedMessageUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIExtendedMessageUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIExtendedMessageUserProperties$Outbound, z.ZodTypeDef, OpenAIExtendedMessageUserProperties>;
    /** @deprecated use `OpenAIExtendedMessageUserProperties$Outbound` instead. */
    type Outbound = OpenAIExtendedMessageUserProperties$Outbound;
}
export declare function openAIExtendedMessageUserPropertiesToJSON(openAIExtendedMessageUserProperties: OpenAIExtendedMessageUserProperties): string;
export declare function openAIExtendedMessageUserPropertiesFromJSON(jsonString: string): SafeParseResult<OpenAIExtendedMessageUserProperties, SDKValidationError>;
/** @internal */
export declare const OpenAIExtendedMessage$inboundSchema: z.ZodType<OpenAIExtendedMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type OpenAIExtendedMessage$Outbound = {
    id: string;
    type: string;
    externalId: string | null;
    externalUrl: string | null;
    conversationId: string;
    createdAt: string;
    updatedAt: string;
    role: string;
    content: string | Array<OpenAIContentItem$Outbound>;
    name?: string | null | undefined;
    links?: Array<Links$Outbound> | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: OpenAIExtendedMessageUserProperties$Outbound | null | undefined;
    tool_calls?: Array<OpenAIToolCall$Outbound> | null | undefined;
};
/** @internal */
export declare const OpenAIExtendedMessage$outboundSchema: z.ZodType<OpenAIExtendedMessage$Outbound, z.ZodTypeDef, OpenAIExtendedMessage>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OpenAIExtendedMessage$ {
    /** @deprecated use `OpenAIExtendedMessage$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OpenAIExtendedMessage, z.ZodTypeDef, unknown>;
    /** @deprecated use `OpenAIExtendedMessage$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OpenAIExtendedMessage$Outbound, z.ZodTypeDef, OpenAIExtendedMessage>;
    /** @deprecated use `OpenAIExtendedMessage$Outbound` instead. */
    type Outbound = OpenAIExtendedMessage$Outbound;
}
export declare function openAIExtendedMessageToJSON(openAIExtendedMessage: OpenAIExtendedMessage): string;
export declare function openAIExtendedMessageFromJSON(jsonString: string): SafeParseResult<OpenAIExtendedMessage, SDKValidationError>;
//# sourceMappingURL=openaiextendedmessage.d.ts.map