import * as z from "zod/v3";
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 InsertConversationEventId = 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 InsertConversationEventUserId = 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 InsertConversationEventUserProperties = {
    /**
     * 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 InsertConversationEvent = {
    id?: string | undefined;
    type: string;
    conversationId: string;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    createdAt?: 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?: InsertConversationEventUserProperties | null | undefined;
    entityType: "conversation";
};
/** @internal */
export declare const InsertConversationEventId$inboundSchema: z.ZodType<InsertConversationEventId, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertConversationEventId$Outbound = string | number;
/** @internal */
export declare const InsertConversationEventId$outboundSchema: z.ZodType<InsertConversationEventId$Outbound, z.ZodTypeDef, InsertConversationEventId>;
export declare function insertConversationEventIdToJSON(insertConversationEventId: InsertConversationEventId): string;
export declare function insertConversationEventIdFromJSON(jsonString: string): SafeParseResult<InsertConversationEventId, SDKValidationError>;
/** @internal */
export declare const InsertConversationEventUserId$inboundSchema: z.ZodType<InsertConversationEventUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertConversationEventUserId$Outbound = string | number;
/** @internal */
export declare const InsertConversationEventUserId$outboundSchema: z.ZodType<InsertConversationEventUserId$Outbound, z.ZodTypeDef, InsertConversationEventUserId>;
export declare function insertConversationEventUserIdToJSON(insertConversationEventUserId: InsertConversationEventUserId): string;
export declare function insertConversationEventUserIdFromJSON(jsonString: string): SafeParseResult<InsertConversationEventUserId, SDKValidationError>;
/** @internal */
export declare const InsertConversationEventUserProperties$inboundSchema: z.ZodType<InsertConversationEventUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertConversationEventUserProperties$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 InsertConversationEventUserProperties$outboundSchema: z.ZodType<InsertConversationEventUserProperties$Outbound, z.ZodTypeDef, InsertConversationEventUserProperties>;
export declare function insertConversationEventUserPropertiesToJSON(insertConversationEventUserProperties: InsertConversationEventUserProperties): string;
export declare function insertConversationEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<InsertConversationEventUserProperties, SDKValidationError>;
/** @internal */
export declare const InsertConversationEvent$inboundSchema: z.ZodType<InsertConversationEvent, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertConversationEvent$Outbound = {
    id?: string | undefined;
    type: string;
    conversationId: string;
    createdAt?: string | null | undefined;
    projectId?: string | null | undefined;
    integrationId?: string | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: InsertConversationEventUserProperties$Outbound | null | undefined;
    entityType: "conversation";
};
/** @internal */
export declare const InsertConversationEvent$outboundSchema: z.ZodType<InsertConversationEvent$Outbound, z.ZodTypeDef, InsertConversationEvent>;
export declare function insertConversationEventToJSON(insertConversationEvent: InsertConversationEvent): string;
export declare function insertConversationEventFromJSON(jsonString: string): SafeParseResult<InsertConversationEvent, SDKValidationError>;
//# sourceMappingURL=insertconversationevent.d.ts.map