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 SelectMessageEventId = 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 SelectMessageEventUserId = 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 SelectMessageEventUserProperties = {
    /**
     * 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 SelectMessageEvent = {
    id: string;
    type: string;
    messageId: string;
    createdAt: 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?: SelectMessageEventUserProperties | null | undefined;
    entityType: "message";
};
/** @internal */
export declare const SelectMessageEventId$inboundSchema: z.ZodType<SelectMessageEventId, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectMessageEventId$Outbound = string | number;
/** @internal */
export declare const SelectMessageEventId$outboundSchema: z.ZodType<SelectMessageEventId$Outbound, z.ZodTypeDef, SelectMessageEventId>;
export declare function selectMessageEventIdToJSON(selectMessageEventId: SelectMessageEventId): string;
export declare function selectMessageEventIdFromJSON(jsonString: string): SafeParseResult<SelectMessageEventId, SDKValidationError>;
/** @internal */
export declare const SelectMessageEventUserId$inboundSchema: z.ZodType<SelectMessageEventUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectMessageEventUserId$Outbound = string | number;
/** @internal */
export declare const SelectMessageEventUserId$outboundSchema: z.ZodType<SelectMessageEventUserId$Outbound, z.ZodTypeDef, SelectMessageEventUserId>;
export declare function selectMessageEventUserIdToJSON(selectMessageEventUserId: SelectMessageEventUserId): string;
export declare function selectMessageEventUserIdFromJSON(jsonString: string): SafeParseResult<SelectMessageEventUserId, SDKValidationError>;
/** @internal */
export declare const SelectMessageEventUserProperties$inboundSchema: z.ZodType<SelectMessageEventUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectMessageEventUserProperties$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 SelectMessageEventUserProperties$outboundSchema: z.ZodType<SelectMessageEventUserProperties$Outbound, z.ZodTypeDef, SelectMessageEventUserProperties>;
export declare function selectMessageEventUserPropertiesToJSON(selectMessageEventUserProperties: SelectMessageEventUserProperties): string;
export declare function selectMessageEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<SelectMessageEventUserProperties, SDKValidationError>;
/** @internal */
export declare const SelectMessageEvent$inboundSchema: z.ZodType<SelectMessageEvent, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectMessageEvent$Outbound = {
    id: string;
    type: string;
    messageId: string;
    createdAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: SelectMessageEventUserProperties$Outbound | null | undefined;
    entityType: "message";
};
/** @internal */
export declare const SelectMessageEvent$outboundSchema: z.ZodType<SelectMessageEvent$Outbound, z.ZodTypeDef, SelectMessageEvent>;
export declare function selectMessageEventToJSON(selectMessageEvent: SelectMessageEvent): string;
export declare function selectMessageEventFromJSON(jsonString: string): SafeParseResult<SelectMessageEvent, SDKValidationError>;
//# sourceMappingURL=selectmessageevent.d.ts.map