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 { SupportCopilotMessage, SupportCopilotMessage$Outbound } from "./supportcopilotmessage.js";
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type SupportCopilotConversationId = 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 SupportCopilotConversationUserId = 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 SupportCopilotConversationUserProperties = {
    /**
     * 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 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: "support_copilot";
    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?: SupportCopilotConversationUserProperties | 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 SupportCopilotConversationId$inboundSchema: z.ZodType<SupportCopilotConversationId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversationId$Outbound = string | number;
/** @internal */
export declare const SupportCopilotConversationId$outboundSchema: z.ZodType<SupportCopilotConversationId$Outbound, z.ZodTypeDef, SupportCopilotConversationId>;
export declare function supportCopilotConversationIdToJSON(supportCopilotConversationId: SupportCopilotConversationId): string;
export declare function supportCopilotConversationIdFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversationId, SDKValidationError>;
/** @internal */
export declare const SupportCopilotConversationUserId$inboundSchema: z.ZodType<SupportCopilotConversationUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversationUserId$Outbound = string | number;
/** @internal */
export declare const SupportCopilotConversationUserId$outboundSchema: z.ZodType<SupportCopilotConversationUserId$Outbound, z.ZodTypeDef, SupportCopilotConversationUserId>;
export declare function supportCopilotConversationUserIdToJSON(supportCopilotConversationUserId: SupportCopilotConversationUserId): string;
export declare function supportCopilotConversationUserIdFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversationUserId, SDKValidationError>;
/** @internal */
export declare const SupportCopilotConversationUserProperties$inboundSchema: z.ZodType<SupportCopilotConversationUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversationUserProperties$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 SupportCopilotConversationUserProperties$outboundSchema: z.ZodType<SupportCopilotConversationUserProperties$Outbound, z.ZodTypeDef, SupportCopilotConversationUserProperties>;
export declare function supportCopilotConversationUserPropertiesToJSON(supportCopilotConversationUserProperties: SupportCopilotConversationUserProperties): string;
export declare function supportCopilotConversationUserPropertiesFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversationUserProperties, SDKValidationError>;
/** @internal */
export declare const SupportCopilotConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationVisibility>;
/** @internal */
export declare const SupportCopilotConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationVisibility>;
/** @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: "support_copilot";
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: SupportCopilotConversationUserProperties$Outbound | 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>;
export declare function supportCopilotConversationToJSON(supportCopilotConversation: SupportCopilotConversation): string;
export declare function supportCopilotConversationFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversation, SDKValidationError>;
//# sourceMappingURL=supportcopilotconversation.d.ts.map