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 SelectSearchEventId = 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 SelectSearchEventUserId = 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 SelectSearchEventUserProperties = {
    /**
     * 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 SelectSearchEventEntityType: {
    readonly Search: "search";
};
export type SelectSearchEventEntityType = ClosedEnum<typeof SelectSearchEventEntityType>;
export type SelectSearchEvent = {
    id: string;
    type: string;
    searchQuery: 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?: SelectSearchEventUserProperties | null | undefined;
    entityType: SelectSearchEventEntityType;
};
/** @internal */
export declare const SelectSearchEventId$inboundSchema: z.ZodType<SelectSearchEventId, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectSearchEventId$Outbound = string | number;
/** @internal */
export declare const SelectSearchEventId$outboundSchema: z.ZodType<SelectSearchEventId$Outbound, z.ZodTypeDef, SelectSearchEventId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectSearchEventId$ {
    /** @deprecated use `SelectSearchEventId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectSearchEventId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectSearchEventId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectSearchEventId$Outbound, z.ZodTypeDef, SelectSearchEventId>;
    /** @deprecated use `SelectSearchEventId$Outbound` instead. */
    type Outbound = SelectSearchEventId$Outbound;
}
export declare function selectSearchEventIdToJSON(selectSearchEventId: SelectSearchEventId): string;
export declare function selectSearchEventIdFromJSON(jsonString: string): SafeParseResult<SelectSearchEventId, SDKValidationError>;
/** @internal */
export declare const SelectSearchEventUserId$inboundSchema: z.ZodType<SelectSearchEventUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectSearchEventUserId$Outbound = string | number;
/** @internal */
export declare const SelectSearchEventUserId$outboundSchema: z.ZodType<SelectSearchEventUserId$Outbound, z.ZodTypeDef, SelectSearchEventUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectSearchEventUserId$ {
    /** @deprecated use `SelectSearchEventUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectSearchEventUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectSearchEventUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectSearchEventUserId$Outbound, z.ZodTypeDef, SelectSearchEventUserId>;
    /** @deprecated use `SelectSearchEventUserId$Outbound` instead. */
    type Outbound = SelectSearchEventUserId$Outbound;
}
export declare function selectSearchEventUserIdToJSON(selectSearchEventUserId: SelectSearchEventUserId): string;
export declare function selectSearchEventUserIdFromJSON(jsonString: string): SafeParseResult<SelectSearchEventUserId, SDKValidationError>;
/** @internal */
export declare const SelectSearchEventUserProperties$inboundSchema: z.ZodType<SelectSearchEventUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectSearchEventUserProperties$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 SelectSearchEventUserProperties$outboundSchema: z.ZodType<SelectSearchEventUserProperties$Outbound, z.ZodTypeDef, SelectSearchEventUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectSearchEventUserProperties$ {
    /** @deprecated use `SelectSearchEventUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectSearchEventUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectSearchEventUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectSearchEventUserProperties$Outbound, z.ZodTypeDef, SelectSearchEventUserProperties>;
    /** @deprecated use `SelectSearchEventUserProperties$Outbound` instead. */
    type Outbound = SelectSearchEventUserProperties$Outbound;
}
export declare function selectSearchEventUserPropertiesToJSON(selectSearchEventUserProperties: SelectSearchEventUserProperties): string;
export declare function selectSearchEventUserPropertiesFromJSON(jsonString: string): SafeParseResult<SelectSearchEventUserProperties, SDKValidationError>;
/** @internal */
export declare const SelectSearchEventEntityType$inboundSchema: z.ZodNativeEnum<typeof SelectSearchEventEntityType>;
/** @internal */
export declare const SelectSearchEventEntityType$outboundSchema: z.ZodNativeEnum<typeof SelectSearchEventEntityType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectSearchEventEntityType$ {
    /** @deprecated use `SelectSearchEventEntityType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Search: "search";
    }>;
    /** @deprecated use `SelectSearchEventEntityType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Search: "search";
    }>;
}
/** @internal */
export declare const SelectSearchEvent$inboundSchema: z.ZodType<SelectSearchEvent, z.ZodTypeDef, unknown>;
/** @internal */
export type SelectSearchEvent$Outbound = {
    id: string;
    type: string;
    searchQuery: string;
    createdAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: SelectSearchEventUserProperties$Outbound | null | undefined;
    entityType: string;
};
/** @internal */
export declare const SelectSearchEvent$outboundSchema: z.ZodType<SelectSearchEvent$Outbound, z.ZodTypeDef, SelectSearchEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SelectSearchEvent$ {
    /** @deprecated use `SelectSearchEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SelectSearchEvent, z.ZodTypeDef, unknown>;
    /** @deprecated use `SelectSearchEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SelectSearchEvent$Outbound, z.ZodTypeDef, SelectSearchEvent>;
    /** @deprecated use `SelectSearchEvent$Outbound` instead. */
    type Outbound = SelectSearchEvent$Outbound;
}
export declare function selectSearchEventToJSON(selectSearchEvent: SelectSearchEvent): string;
export declare function selectSearchEventFromJSON(jsonString: string): SafeParseResult<SelectSearchEvent, SDKValidationError>;
//# sourceMappingURL=selectsearchevent.d.ts.map