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 InsertSearchEventId = 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 InsertSearchEventUserId = 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 InsertSearchEventUserProperties = {
    /**
     * 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 InsertSearchEventEntityType: {
    readonly Search: "search";
};
export type InsertSearchEventEntityType = ClosedEnum<typeof InsertSearchEventEntityType>;
export type InsertSearchEvent = {
    id?: string | undefined;
    type: string;
    searchQuery: 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?: InsertSearchEventUserProperties | null | undefined;
    entityType: InsertSearchEventEntityType;
};
/** @internal */
export declare const InsertSearchEventId$inboundSchema: z.ZodType<InsertSearchEventId, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertSearchEventId$Outbound = string | number;
/** @internal */
export declare const InsertSearchEventId$outboundSchema: z.ZodType<InsertSearchEventId$Outbound, z.ZodTypeDef, InsertSearchEventId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertSearchEventId$ {
    /** @deprecated use `InsertSearchEventId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertSearchEventId, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertSearchEventId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertSearchEventId$Outbound, z.ZodTypeDef, InsertSearchEventId>;
    /** @deprecated use `InsertSearchEventId$Outbound` instead. */
    type Outbound = InsertSearchEventId$Outbound;
}
export declare function insertSearchEventIdToJSON(insertSearchEventId: InsertSearchEventId): string;
export declare function insertSearchEventIdFromJSON(jsonString: string): SafeParseResult<InsertSearchEventId, SDKValidationError>;
/** @internal */
export declare const InsertSearchEventUserId$inboundSchema: z.ZodType<InsertSearchEventUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertSearchEventUserId$Outbound = string | number;
/** @internal */
export declare const InsertSearchEventUserId$outboundSchema: z.ZodType<InsertSearchEventUserId$Outbound, z.ZodTypeDef, InsertSearchEventUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertSearchEventUserId$ {
    /** @deprecated use `InsertSearchEventUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertSearchEventUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertSearchEventUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertSearchEventUserId$Outbound, z.ZodTypeDef, InsertSearchEventUserId>;
    /** @deprecated use `InsertSearchEventUserId$Outbound` instead. */
    type Outbound = InsertSearchEventUserId$Outbound;
}
export declare function insertSearchEventUserIdToJSON(insertSearchEventUserId: InsertSearchEventUserId): string;
export declare function insertSearchEventUserIdFromJSON(jsonString: string): SafeParseResult<InsertSearchEventUserId, SDKValidationError>;
/** @internal */
export declare const InsertSearchEventUserProperties$inboundSchema: z.ZodType<InsertSearchEventUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertSearchEventUserProperties$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 InsertSearchEventUserProperties$outboundSchema: z.ZodType<InsertSearchEventUserProperties$Outbound, z.ZodTypeDef, InsertSearchEventUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertSearchEventUserProperties$ {
    /** @deprecated use `InsertSearchEventUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertSearchEventUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertSearchEventUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertSearchEventUserProperties$Outbound, z.ZodTypeDef, InsertSearchEventUserProperties>;
    /** @deprecated use `InsertSearchEventUserProperties$Outbound` instead. */
    type Outbound = InsertSearchEventUserProperties$Outbound;
}
export declare function insertSearchEventUserPropertiesToJSON(insertSearchEventUserProperties: InsertSearchEventUserProperties): string;
export declare function insertSearchEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<InsertSearchEventUserProperties, SDKValidationError>;
/** @internal */
export declare const InsertSearchEventEntityType$inboundSchema: z.ZodNativeEnum<typeof InsertSearchEventEntityType>;
/** @internal */
export declare const InsertSearchEventEntityType$outboundSchema: z.ZodNativeEnum<typeof InsertSearchEventEntityType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertSearchEventEntityType$ {
    /** @deprecated use `InsertSearchEventEntityType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Search: "search";
    }>;
    /** @deprecated use `InsertSearchEventEntityType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Search: "search";
    }>;
}
/** @internal */
export declare const InsertSearchEvent$inboundSchema: z.ZodType<InsertSearchEvent, z.ZodTypeDef, unknown>;
/** @internal */
export type InsertSearchEvent$Outbound = {
    id?: string | undefined;
    type: string;
    searchQuery: string;
    createdAt?: string | null | undefined;
    projectId?: string | null | undefined;
    integrationId?: string | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: InsertSearchEventUserProperties$Outbound | null | undefined;
    entityType: string;
};
/** @internal */
export declare const InsertSearchEvent$outboundSchema: z.ZodType<InsertSearchEvent$Outbound, z.ZodTypeDef, InsertSearchEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InsertSearchEvent$ {
    /** @deprecated use `InsertSearchEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InsertSearchEvent, z.ZodTypeDef, unknown>;
    /** @deprecated use `InsertSearchEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InsertSearchEvent$Outbound, z.ZodTypeDef, InsertSearchEvent>;
    /** @deprecated use `InsertSearchEvent$Outbound` instead. */
    type Outbound = InsertSearchEvent$Outbound;
}
export declare function insertSearchEventToJSON(insertSearchEvent: InsertSearchEvent): string;
export declare function insertSearchEventFromJSON(jsonString: string): SafeParseResult<InsertSearchEvent, SDKValidationError>;
//# sourceMappingURL=insertsearchevent.d.ts.map