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 InsertMessageEventId = 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 InsertMessageEventUserId = 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 InsertMessageEventUserProperties = {
    /**
     * 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 InsertMessageEvent = {
    id?: string | undefined;
    type: string;
    messageId: 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?: InsertMessageEventUserProperties | null | undefined;
    entityType: "message";
};
/** @internal */
export declare const InsertMessageEventId$inboundSchema: z.ZodType<InsertMessageEventId, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertMessageEventId$Outbound = string | number;
/** @internal */
export declare const InsertMessageEventId$outboundSchema: z.ZodType<InsertMessageEventId$Outbound, z.ZodTypeDef, InsertMessageEventId>;
export declare function insertMessageEventIdToJSON(insertMessageEventId: InsertMessageEventId): string;
export declare function insertMessageEventIdFromJSON(jsonString: string): SafeParseResult<InsertMessageEventId, SDKValidationError>;
/** @internal */
export declare const InsertMessageEventUserId$inboundSchema: z.ZodType<InsertMessageEventUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertMessageEventUserId$Outbound = string | number;
/** @internal */
export declare const InsertMessageEventUserId$outboundSchema: z.ZodType<InsertMessageEventUserId$Outbound, z.ZodTypeDef, InsertMessageEventUserId>;
export declare function insertMessageEventUserIdToJSON(insertMessageEventUserId: InsertMessageEventUserId): string;
export declare function insertMessageEventUserIdFromJSON(jsonString: string): SafeParseResult<InsertMessageEventUserId, SDKValidationError>;
/** @internal */
export declare const InsertMessageEventUserProperties$inboundSchema: z.ZodType<InsertMessageEventUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertMessageEventUserProperties$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 InsertMessageEventUserProperties$outboundSchema: z.ZodType<InsertMessageEventUserProperties$Outbound, z.ZodTypeDef, InsertMessageEventUserProperties>;
export declare function insertMessageEventUserPropertiesToJSON(insertMessageEventUserProperties: InsertMessageEventUserProperties): string;
export declare function insertMessageEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<InsertMessageEventUserProperties, SDKValidationError>;
/** @internal */
export declare const InsertMessageEvent$inboundSchema: z.ZodType<InsertMessageEvent, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertMessageEvent$Outbound = {
    id?: string | undefined;
    type: string;
    messageId: string;
    createdAt?: string | null | undefined;
    projectId?: string | null | undefined;
    integrationId?: string | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: InsertMessageEventUserProperties$Outbound | null | undefined;
    entityType: "message";
};
/** @internal */
export declare const InsertMessageEvent$outboundSchema: z.ZodType<InsertMessageEvent$Outbound, z.ZodTypeDef, InsertMessageEvent>;
export declare function insertMessageEventToJSON(insertMessageEvent: InsertMessageEvent): string;
export declare function insertMessageEventFromJSON(jsonString: string): SafeParseResult<InsertMessageEvent, SDKValidationError>;
//# sourceMappingURL=insertmessageevent.d.ts.map