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 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;
    additionalProperties?: {
        [k: string]: any;
    };
};
export declare const InsertConversationEventEntityType: {
    readonly Conversation: "conversation";
};
export type InsertConversationEventEntityType = ClosedEnum<typeof InsertConversationEventEntityType>;
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: InsertConversationEventEntityType;
};
/** @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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertConversationEventId$ {
    /** @deprecated use `InsertConversationEventId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertConversationEventId, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertConversationEventId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertConversationEventId$Outbound, z.ZodTypeDef, InsertConversationEventId>;
    /** @deprecated use `InsertConversationEventId$Outbound` instead. */
    type Outbound = InsertConversationEventId$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertConversationEventUserId$ {
    /** @deprecated use `InsertConversationEventUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertConversationEventUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertConversationEventUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertConversationEventUserId$Outbound, z.ZodTypeDef, InsertConversationEventUserId>;
    /** @deprecated use `InsertConversationEventUserId$Outbound` instead. */
    type Outbound = InsertConversationEventUserId$Outbound;
}
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;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const InsertConversationEventUserProperties$outboundSchema: z.ZodType<InsertConversationEventUserProperties$Outbound, z.ZodTypeDef, InsertConversationEventUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertConversationEventUserProperties$ {
    /** @deprecated use `InsertConversationEventUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertConversationEventUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertConversationEventUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertConversationEventUserProperties$Outbound, z.ZodTypeDef, InsertConversationEventUserProperties>;
    /** @deprecated use `InsertConversationEventUserProperties$Outbound` instead. */
    type Outbound = InsertConversationEventUserProperties$Outbound;
}
export declare function insertConversationEventUserPropertiesToJSON(insertConversationEventUserProperties: InsertConversationEventUserProperties): string;
export declare function insertConversationEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<InsertConversationEventUserProperties, SDKValidationError>;
/** @internal */
export declare const InsertConversationEventEntityType$inboundSchema: z.ZodNativeEnum<typeof InsertConversationEventEntityType>;
/** @internal */
export declare const InsertConversationEventEntityType$outboundSchema: z.ZodNativeEnum<typeof InsertConversationEventEntityType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertConversationEventEntityType$ {
    /** @deprecated use `InsertConversationEventEntityType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Conversation: "conversation";
    }>;
    /** @deprecated use `InsertConversationEventEntityType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Conversation: "conversation";
    }>;
}
/** @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: string;
};
/** @internal */
export declare const InsertConversationEvent$outboundSchema: z.ZodType<InsertConversationEvent$Outbound, z.ZodTypeDef, InsertConversationEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertConversationEvent$ {
    /** @deprecated use `InsertConversationEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertConversationEvent, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertConversationEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertConversationEvent$Outbound, z.ZodTypeDef, InsertConversationEvent>;
    /** @deprecated use `InsertConversationEvent$Outbound` instead. */
    type Outbound = InsertConversationEvent$Outbound;
}
export declare function insertConversationEventToJSON(insertConversationEvent: InsertConversationEvent): string;
export declare function insertConversationEventFromJSON(jsonString: string): SafeParseResult<InsertConversationEvent, SDKValidationError>;
//# sourceMappingURL=insertconversationevent.d.ts.map