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 { SupportTicketMessage, SupportTicketMessage$Outbound } from "./supportticketmessage.js";
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type SupportTicketConversationId = 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 SupportTicketConversationUserId = 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 SupportTicketConversationUserProperties = {
    /**
     * 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 SupportTicketConversationVisibility: {
    readonly Private: "private";
    readonly Public: "public";
};
export type SupportTicketConversationVisibility = ClosedEnum<typeof SupportTicketConversationVisibility>;
export type SupportTicketConversation = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: "support_ticket";
    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?: SupportTicketConversationUserProperties | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: SupportTicketConversationVisibility | null;
    /**
     * The messages in the conversation. Must be at least one message.
     */
    messages: Array<SupportTicketMessage>;
};
/** @internal */
export declare const SupportTicketConversationId$inboundSchema: z.ZodType<SupportTicketConversationId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversationId$Outbound = string | number;
/** @internal */
export declare const SupportTicketConversationId$outboundSchema: z.ZodType<SupportTicketConversationId$Outbound, z.ZodTypeDef, SupportTicketConversationId>;
export declare function supportTicketConversationIdToJSON(supportTicketConversationId: SupportTicketConversationId): string;
export declare function supportTicketConversationIdFromJSON(jsonString: string): SafeParseResult<SupportTicketConversationId, SDKValidationError>;
/** @internal */
export declare const SupportTicketConversationUserId$inboundSchema: z.ZodType<SupportTicketConversationUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversationUserId$Outbound = string | number;
/** @internal */
export declare const SupportTicketConversationUserId$outboundSchema: z.ZodType<SupportTicketConversationUserId$Outbound, z.ZodTypeDef, SupportTicketConversationUserId>;
export declare function supportTicketConversationUserIdToJSON(supportTicketConversationUserId: SupportTicketConversationUserId): string;
export declare function supportTicketConversationUserIdFromJSON(jsonString: string): SafeParseResult<SupportTicketConversationUserId, SDKValidationError>;
/** @internal */
export declare const SupportTicketConversationUserProperties$inboundSchema: z.ZodType<SupportTicketConversationUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversationUserProperties$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 SupportTicketConversationUserProperties$outboundSchema: z.ZodType<SupportTicketConversationUserProperties$Outbound, z.ZodTypeDef, SupportTicketConversationUserProperties>;
export declare function supportTicketConversationUserPropertiesToJSON(supportTicketConversationUserProperties: SupportTicketConversationUserProperties): string;
export declare function supportTicketConversationUserPropertiesFromJSON(jsonString: string): SafeParseResult<SupportTicketConversationUserProperties, SDKValidationError>;
/** @internal */
export declare const SupportTicketConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof SupportTicketConversationVisibility>;
/** @internal */
export declare const SupportTicketConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof SupportTicketConversationVisibility>;
/** @internal */
export declare const SupportTicketConversation$inboundSchema: z.ZodType<SupportTicketConversation, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversation$Outbound = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: "support_ticket";
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: SupportTicketConversationUserProperties$Outbound | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: string | null;
    messages: Array<SupportTicketMessage$Outbound>;
};
/** @internal */
export declare const SupportTicketConversation$outboundSchema: z.ZodType<SupportTicketConversation$Outbound, z.ZodTypeDef, SupportTicketConversation>;
export declare function supportTicketConversationToJSON(supportTicketConversation: SupportTicketConversation): string;
export declare function supportTicketConversationFromJSON(jsonString: string): SafeParseResult<SupportTicketConversation, SDKValidationError>;
//# sourceMappingURL=supportticketconversation.d.ts.map