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 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;
    additionalProperties?: {
        [k: string]: any;
    };
};
export declare const SelectMessageEventEntityType: {
    readonly Message: "message";
};
export type SelectMessageEventEntityType = ClosedEnum<typeof SelectMessageEventEntityType>;
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: SelectMessageEventEntityType;
};
/** @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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectMessageEventId$ {
    /** @deprecated use `SelectMessageEventId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectMessageEventId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectMessageEventId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectMessageEventId$Outbound, z.ZodTypeDef, SelectMessageEventId>;
    /** @deprecated use `SelectMessageEventId$Outbound` instead. */
    type Outbound = SelectMessageEventId$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectMessageEventUserId$ {
    /** @deprecated use `SelectMessageEventUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectMessageEventUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectMessageEventUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectMessageEventUserId$Outbound, z.ZodTypeDef, SelectMessageEventUserId>;
    /** @deprecated use `SelectMessageEventUserId$Outbound` instead. */
    type Outbound = SelectMessageEventUserId$Outbound;
}
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;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const SelectMessageEventUserProperties$outboundSchema: z.ZodType<SelectMessageEventUserProperties$Outbound, z.ZodTypeDef, SelectMessageEventUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectMessageEventUserProperties$ {
    /** @deprecated use `SelectMessageEventUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectMessageEventUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectMessageEventUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectMessageEventUserProperties$Outbound, z.ZodTypeDef, SelectMessageEventUserProperties>;
    /** @deprecated use `SelectMessageEventUserProperties$Outbound` instead. */
    type Outbound = SelectMessageEventUserProperties$Outbound;
}
export declare function selectMessageEventUserPropertiesToJSON(selectMessageEventUserProperties: SelectMessageEventUserProperties): string;
export declare function selectMessageEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<SelectMessageEventUserProperties, SDKValidationError>;
/** @internal */
export declare const SelectMessageEventEntityType$inboundSchema: z.ZodNativeEnum<typeof SelectMessageEventEntityType>;
/** @internal */
export declare const SelectMessageEventEntityType$outboundSchema: z.ZodNativeEnum<typeof SelectMessageEventEntityType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectMessageEventEntityType$ {
    /** @deprecated use `SelectMessageEventEntityType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Message: "message";
    }>;
    /** @deprecated use `SelectMessageEventEntityType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Message: "message";
    }>;
}
/** @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: string;
};
/** @internal */
export declare const SelectMessageEvent$outboundSchema: z.ZodType<SelectMessageEvent$Outbound, z.ZodTypeDef, SelectMessageEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectMessageEvent$ {
    /** @deprecated use `SelectMessageEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectMessageEvent, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectMessageEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectMessageEvent$Outbound, z.ZodTypeDef, SelectMessageEvent>;
    /** @deprecated use `SelectMessageEvent$Outbound` instead. */
    type Outbound = SelectMessageEvent$Outbound;
}
export declare function selectMessageEventToJSON(selectMessageEvent: SelectMessageEvent): string;
export declare function selectMessageEventFromJSON(jsonString: string): SafeParseResult<SelectMessageEvent, SDKValidationError>;
//# sourceMappingURL=selectmessageevent.d.ts.map