import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
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;
    additionalProperties?: {
        [k: string]: any;
    };
};
export declare const EntityType: {
    readonly Message: "message";
};
export type EntityType = ClosedEnum<typeof EntityType>;
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: EntityType;
};
/** @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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertMessageEventId$ {
    /** @deprecated use `InsertMessageEventId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertMessageEventId, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertMessageEventId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertMessageEventId$Outbound, z.ZodTypeDef, InsertMessageEventId>;
    /** @deprecated use `InsertMessageEventId$Outbound` instead. */
    type Outbound = InsertMessageEventId$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertMessageEventUserId$ {
    /** @deprecated use `InsertMessageEventUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertMessageEventUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertMessageEventUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertMessageEventUserId$Outbound, z.ZodTypeDef, InsertMessageEventUserId>;
    /** @deprecated use `InsertMessageEventUserId$Outbound` instead. */
    type Outbound = InsertMessageEventUserId$Outbound;
}
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;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const InsertMessageEventUserProperties$outboundSchema: z.ZodType<InsertMessageEventUserProperties$Outbound, z.ZodTypeDef, InsertMessageEventUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertMessageEventUserProperties$ {
    /** @deprecated use `InsertMessageEventUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertMessageEventUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertMessageEventUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertMessageEventUserProperties$Outbound, z.ZodTypeDef, InsertMessageEventUserProperties>;
    /** @deprecated use `InsertMessageEventUserProperties$Outbound` instead. */
    type Outbound = InsertMessageEventUserProperties$Outbound;
}
export declare function insertMessageEventUserPropertiesToJSON(insertMessageEventUserProperties: InsertMessageEventUserProperties): string;
export declare function insertMessageEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<InsertMessageEventUserProperties, SDKValidationError>;
/** @internal */
export declare const EntityType$inboundSchema: z.ZodNativeEnum<typeof EntityType>;
/** @internal */
export declare const EntityType$outboundSchema: z.ZodNativeEnum<typeof EntityType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace EntityType$ {
    /** @deprecated use `EntityType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Message: "message";
    }>;
    /** @deprecated use `EntityType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Message: "message";
    }>;
}
/** @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: string;
};
/** @internal */
export declare const InsertMessageEvent$outboundSchema: z.ZodType<InsertMessageEvent$Outbound, z.ZodTypeDef, InsertMessageEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertMessageEvent$ {
    /** @deprecated use `InsertMessageEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertMessageEvent, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertMessageEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertMessageEvent$Outbound, z.ZodTypeDef, InsertMessageEvent>;
    /** @deprecated use `InsertMessageEvent$Outbound` instead. */
    type Outbound = InsertMessageEvent$Outbound;
}
export declare function insertMessageEventToJSON(insertMessageEvent: InsertMessageEvent): string;
export declare function insertMessageEventFromJSON(jsonString: string): SafeParseResult<InsertMessageEvent, SDKValidationError>;
//# sourceMappingURL=insertmessageevent.d.ts.map