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";
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type CreateSupportTicketConversationId = 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 CreateSupportTicketConversationUserId = 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 CreateSupportTicketConversationUserProperties = {
    /**
     * 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 CreateSupportTicketConversationVisibility: {
    readonly Private: "private";
    readonly Public: "public";
};
export type CreateSupportTicketConversationVisibility = ClosedEnum<typeof CreateSupportTicketConversationVisibility>;
export declare const CreateSupportTicketConversationType1: {
    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 CreateSupportTicketConversationType1 = ClosedEnum<typeof CreateSupportTicketConversationType1>;
export type CreateSupportTicketConversationMessagesType = CreateSupportTicketConversationType1 | string;
export type CreateSupportTicketConversationLinks = {
    label?: string | null | undefined;
    url: string;
    title?: string | null | undefined;
    description?: string | null | undefined;
    type?: CreateSupportTicketConversationType1 | string | null | undefined;
    breadcrumbs?: Array<string> | null | undefined;
};
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type CreateSupportTicketConversationMessagesId = 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 CreateSupportTicketConversationMessagesUserId = 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 CreateSupportTicketConversationMessagesUserProperties = {
    /**
     * 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 type CreateSupportTicketConversationMessages = {
    id?: string | undefined;
    externalId?: string | null | undefined;
    externalUrl?: string | null | undefined;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    createdAt?: Date | null | undefined;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    updatedAt?: Date | null | undefined;
    role: string;
    content?: string | null | undefined;
    name?: string | null | undefined;
    links?: Array<CreateSupportTicketConversationLinks> | 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?: CreateSupportTicketConversationMessagesUserProperties | null | undefined;
};
export type CreateSupportTicketConversation = {
    id?: string | undefined;
    externalId?: string | null | undefined;
    externalUrl?: string | null | undefined;
    type: "support_ticket";
    supportTicketConversationId?: string | null | undefined;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    createdAt?: Date | null | undefined;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    updatedAt?: Date | null | undefined;
    projectId?: string | null | undefined;
    integrationId?: string | 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?: CreateSupportTicketConversationUserProperties | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility?: CreateSupportTicketConversationVisibility | null | undefined;
    messages: Array<CreateSupportTicketConversationMessages>;
};
/** @internal */
export declare const CreateSupportTicketConversationId$inboundSchema: z.ZodType<CreateSupportTicketConversationId, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationId$Outbound = string | number;
/** @internal */
export declare const CreateSupportTicketConversationId$outboundSchema: z.ZodType<CreateSupportTicketConversationId$Outbound, z.ZodTypeDef, CreateSupportTicketConversationId>;
export declare function createSupportTicketConversationIdToJSON(createSupportTicketConversationId: CreateSupportTicketConversationId): string;
export declare function createSupportTicketConversationIdFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationId, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationUserId$inboundSchema: z.ZodType<CreateSupportTicketConversationUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationUserId$Outbound = string | number;
/** @internal */
export declare const CreateSupportTicketConversationUserId$outboundSchema: z.ZodType<CreateSupportTicketConversationUserId$Outbound, z.ZodTypeDef, CreateSupportTicketConversationUserId>;
export declare function createSupportTicketConversationUserIdToJSON(createSupportTicketConversationUserId: CreateSupportTicketConversationUserId): string;
export declare function createSupportTicketConversationUserIdFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationUserId, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationUserProperties$inboundSchema: z.ZodType<CreateSupportTicketConversationUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationUserProperties$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 CreateSupportTicketConversationUserProperties$outboundSchema: z.ZodType<CreateSupportTicketConversationUserProperties$Outbound, z.ZodTypeDef, CreateSupportTicketConversationUserProperties>;
export declare function createSupportTicketConversationUserPropertiesToJSON(createSupportTicketConversationUserProperties: CreateSupportTicketConversationUserProperties): string;
export declare function createSupportTicketConversationUserPropertiesFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationUserProperties, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof CreateSupportTicketConversationVisibility>;
/** @internal */
export declare const CreateSupportTicketConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof CreateSupportTicketConversationVisibility>;
/** @internal */
export declare const CreateSupportTicketConversationType1$inboundSchema: z.ZodNativeEnum<typeof CreateSupportTicketConversationType1>;
/** @internal */
export declare const CreateSupportTicketConversationType1$outboundSchema: z.ZodNativeEnum<typeof CreateSupportTicketConversationType1>;
/** @internal */
export declare const CreateSupportTicketConversationMessagesType$inboundSchema: z.ZodType<CreateSupportTicketConversationMessagesType, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationMessagesType$Outbound = string | string;
/** @internal */
export declare const CreateSupportTicketConversationMessagesType$outboundSchema: z.ZodType<CreateSupportTicketConversationMessagesType$Outbound, z.ZodTypeDef, CreateSupportTicketConversationMessagesType>;
export declare function createSupportTicketConversationMessagesTypeToJSON(createSupportTicketConversationMessagesType: CreateSupportTicketConversationMessagesType): string;
export declare function createSupportTicketConversationMessagesTypeFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationMessagesType, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationLinks$inboundSchema: z.ZodType<CreateSupportTicketConversationLinks, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationLinks$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 CreateSupportTicketConversationLinks$outboundSchema: z.ZodType<CreateSupportTicketConversationLinks$Outbound, z.ZodTypeDef, CreateSupportTicketConversationLinks>;
export declare function createSupportTicketConversationLinksToJSON(createSupportTicketConversationLinks: CreateSupportTicketConversationLinks): string;
export declare function createSupportTicketConversationLinksFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationLinks, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationMessagesId$inboundSchema: z.ZodType<CreateSupportTicketConversationMessagesId, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationMessagesId$Outbound = string | number;
/** @internal */
export declare const CreateSupportTicketConversationMessagesId$outboundSchema: z.ZodType<CreateSupportTicketConversationMessagesId$Outbound, z.ZodTypeDef, CreateSupportTicketConversationMessagesId>;
export declare function createSupportTicketConversationMessagesIdToJSON(createSupportTicketConversationMessagesId: CreateSupportTicketConversationMessagesId): string;
export declare function createSupportTicketConversationMessagesIdFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationMessagesId, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationMessagesUserId$inboundSchema: z.ZodType<CreateSupportTicketConversationMessagesUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationMessagesUserId$Outbound = string | number;
/** @internal */
export declare const CreateSupportTicketConversationMessagesUserId$outboundSchema: z.ZodType<CreateSupportTicketConversationMessagesUserId$Outbound, z.ZodTypeDef, CreateSupportTicketConversationMessagesUserId>;
export declare function createSupportTicketConversationMessagesUserIdToJSON(createSupportTicketConversationMessagesUserId: CreateSupportTicketConversationMessagesUserId): string;
export declare function createSupportTicketConversationMessagesUserIdFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationMessagesUserId, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationMessagesUserProperties$inboundSchema: z.ZodType<CreateSupportTicketConversationMessagesUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationMessagesUserProperties$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 CreateSupportTicketConversationMessagesUserProperties$outboundSchema: z.ZodType<CreateSupportTicketConversationMessagesUserProperties$Outbound, z.ZodTypeDef, CreateSupportTicketConversationMessagesUserProperties>;
export declare function createSupportTicketConversationMessagesUserPropertiesToJSON(createSupportTicketConversationMessagesUserProperties: CreateSupportTicketConversationMessagesUserProperties): string;
export declare function createSupportTicketConversationMessagesUserPropertiesFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationMessagesUserProperties, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversationMessages$inboundSchema: z.ZodType<CreateSupportTicketConversationMessages, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversationMessages$Outbound = {
    id?: string | undefined;
    externalId?: string | null | undefined;
    externalUrl?: string | null | undefined;
    createdAt?: string | null | undefined;
    updatedAt?: string | null | undefined;
    role: string;
    content?: string | null | undefined;
    name?: string | null | undefined;
    links?: Array<CreateSupportTicketConversationLinks$Outbound> | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: CreateSupportTicketConversationMessagesUserProperties$Outbound | null | undefined;
};
/** @internal */
export declare const CreateSupportTicketConversationMessages$outboundSchema: z.ZodType<CreateSupportTicketConversationMessages$Outbound, z.ZodTypeDef, CreateSupportTicketConversationMessages>;
export declare function createSupportTicketConversationMessagesToJSON(createSupportTicketConversationMessages: CreateSupportTicketConversationMessages): string;
export declare function createSupportTicketConversationMessagesFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversationMessages, SDKValidationError>;
/** @internal */
export declare const CreateSupportTicketConversation$inboundSchema: z.ZodType<CreateSupportTicketConversation, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateSupportTicketConversation$Outbound = {
    id?: string | undefined;
    externalId?: string | null | undefined;
    externalUrl?: string | null | undefined;
    type: "support_ticket";
    supportTicketConversationId?: string | null | undefined;
    createdAt?: string | null | undefined;
    updatedAt?: string | null | undefined;
    projectId?: string | null | undefined;
    integrationId?: string | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: CreateSupportTicketConversationUserProperties$Outbound | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility?: string | null | undefined;
    messages: Array<CreateSupportTicketConversationMessages$Outbound>;
};
/** @internal */
export declare const CreateSupportTicketConversation$outboundSchema: z.ZodType<CreateSupportTicketConversation$Outbound, z.ZodTypeDef, CreateSupportTicketConversation>;
export declare function createSupportTicketConversationToJSON(createSupportTicketConversation: CreateSupportTicketConversation): string;
export declare function createSupportTicketConversationFromJSON(jsonString: string): SafeParseResult<CreateSupportTicketConversation, SDKValidationError>;
//# sourceMappingURL=createsupportticketconversation.d.ts.map