import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare const Type: {
    readonly Positive: "positive";
    readonly Negative: "negative";
};
export type Type = ClosedEnum<typeof Type>;
export type Reasons = {
    label: string;
    details: string;
};
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type Id = 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 UserId = 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 UserProperties = {
    /**
     * 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;
    /**
     * The type of user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    userType?: string | null | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const LogFeedbackType: {
    readonly Positive: "positive";
    readonly Negative: "negative";
    readonly New: "new";
};
export type LogFeedbackType = ClosedEnum<typeof LogFeedbackType>;
export type Sources = {
    type: LogFeedbackType | null;
    title?: string | null | undefined;
    url?: string | null | undefined;
};
/**
 * Note: The maximum size of the request body is 2 MB.
 */
export type LogFeedbackRequestBody = {
    id?: string | undefined;
    type: Type;
    messageId: string;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    createdAt?: Date | null | undefined;
    /**
     * A timestamp in ISO 8601 format with timezone information. If not provided, the current time will be used.
     */
    updatedAt?: Date | null | undefined;
    reasons?: Array<Reasons> | null | undefined;
    details?: 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?: UserProperties | null | undefined;
    sources?: Array<Sources> | null | undefined;
};
export declare const LogFeedbackFeedbackType: {
    readonly Positive: "positive";
    readonly Negative: "negative";
};
export type LogFeedbackFeedbackType = ClosedEnum<typeof LogFeedbackFeedbackType>;
export type LogFeedbackReasons = {
    label: string;
    details: string;
};
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type LogFeedbackId = 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 LogFeedbackUserId = 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 LogFeedbackUserProperties = {
    /**
     * 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;
    /**
     * The type of user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    userType?: string | null | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const LogFeedbackFeedbackResponseType: {
    readonly Positive: "positive";
    readonly Negative: "negative";
    readonly New: "new";
};
export type LogFeedbackFeedbackResponseType = ClosedEnum<typeof LogFeedbackFeedbackResponseType>;
export type LogFeedbackSources = {
    type: LogFeedbackFeedbackResponseType | null;
    title?: string | null | undefined;
    url?: string | null | undefined;
};
/**
 * Feedback logged successfully
 */
export type LogFeedbackResponseBody = {
    id: string;
    type: LogFeedbackFeedbackType;
    messageId: string;
    createdAt: string;
    updatedAt: string;
    reasons?: Array<LogFeedbackReasons> | null | undefined;
    details?: 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?: LogFeedbackUserProperties | null | undefined;
    sources?: Array<LogFeedbackSources> | null | undefined;
};
/** @internal */
export declare const Type$inboundSchema: z.ZodNativeEnum<typeof Type>;
/** @internal */
export declare const Type$outboundSchema: z.ZodNativeEnum<typeof Type>;
/** @internal */
export declare const Reasons$inboundSchema: z.ZodType<Reasons, z.ZodTypeDef, unknown>;
/** @internal */
export type Reasons$Outbound = {
    label: string;
    details: string;
};
/** @internal */
export declare const Reasons$outboundSchema: z.ZodType<Reasons$Outbound, z.ZodTypeDef, Reasons>;
export declare function reasonsToJSON(reasons: Reasons): string;
export declare function reasonsFromJSON(jsonString: string): SafeParseResult<Reasons, SDKValidationError>;
/** @internal */
export declare const Id$inboundSchema: z.ZodType<Id, z.ZodTypeDef, unknown>;
/** @internal */
export type Id$Outbound = string | number;
/** @internal */
export declare const Id$outboundSchema: z.ZodType<Id$Outbound, z.ZodTypeDef, Id>;
export declare function idToJSON(id: Id): string;
export declare function idFromJSON(jsonString: string): SafeParseResult<Id, SDKValidationError>;
/** @internal */
export declare const UserId$inboundSchema: z.ZodType<UserId, z.ZodTypeDef, unknown>;
/** @internal */
export type UserId$Outbound = string | number;
/** @internal */
export declare const UserId$outboundSchema: z.ZodType<UserId$Outbound, z.ZodTypeDef, UserId>;
export declare function userIdToJSON(userId: UserId): string;
export declare function userIdFromJSON(jsonString: string): SafeParseResult<UserId, SDKValidationError>;
/** @internal */
export declare const UserProperties$inboundSchema: z.ZodType<UserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type UserProperties$Outbound = {
    id?: string | number | null | undefined;
    identificationType?: string | null | undefined;
    userId?: string | number | null | undefined;
    supportAgentName?: string | null | undefined;
    userType?: string | null | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const UserProperties$outboundSchema: z.ZodType<UserProperties$Outbound, z.ZodTypeDef, UserProperties>;
export declare function userPropertiesToJSON(userProperties: UserProperties): string;
export declare function userPropertiesFromJSON(jsonString: string): SafeParseResult<UserProperties, SDKValidationError>;
/** @internal */
export declare const LogFeedbackType$inboundSchema: z.ZodNativeEnum<typeof LogFeedbackType>;
/** @internal */
export declare const LogFeedbackType$outboundSchema: z.ZodNativeEnum<typeof LogFeedbackType>;
/** @internal */
export declare const Sources$inboundSchema: z.ZodType<Sources, z.ZodTypeDef, unknown>;
/** @internal */
export type Sources$Outbound = {
    type: string | null;
    title?: string | null | undefined;
    url?: string | null | undefined;
};
/** @internal */
export declare const Sources$outboundSchema: z.ZodType<Sources$Outbound, z.ZodTypeDef, Sources>;
export declare function sourcesToJSON(sources: Sources): string;
export declare function sourcesFromJSON(jsonString: string): SafeParseResult<Sources, SDKValidationError>;
/** @internal */
export declare const LogFeedbackRequestBody$inboundSchema: z.ZodType<LogFeedbackRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackRequestBody$Outbound = {
    id?: string | undefined;
    type: string;
    messageId: string;
    createdAt?: string | null | undefined;
    updatedAt?: string | null | undefined;
    reasons?: Array<Reasons$Outbound> | null | undefined;
    details?: string | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: UserProperties$Outbound | null | undefined;
    sources?: Array<Sources$Outbound> | null | undefined;
};
/** @internal */
export declare const LogFeedbackRequestBody$outboundSchema: z.ZodType<LogFeedbackRequestBody$Outbound, z.ZodTypeDef, LogFeedbackRequestBody>;
export declare function logFeedbackRequestBodyToJSON(logFeedbackRequestBody: LogFeedbackRequestBody): string;
export declare function logFeedbackRequestBodyFromJSON(jsonString: string): SafeParseResult<LogFeedbackRequestBody, SDKValidationError>;
/** @internal */
export declare const LogFeedbackFeedbackType$inboundSchema: z.ZodNativeEnum<typeof LogFeedbackFeedbackType>;
/** @internal */
export declare const LogFeedbackFeedbackType$outboundSchema: z.ZodNativeEnum<typeof LogFeedbackFeedbackType>;
/** @internal */
export declare const LogFeedbackReasons$inboundSchema: z.ZodType<LogFeedbackReasons, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackReasons$Outbound = {
    label: string;
    details: string;
};
/** @internal */
export declare const LogFeedbackReasons$outboundSchema: z.ZodType<LogFeedbackReasons$Outbound, z.ZodTypeDef, LogFeedbackReasons>;
export declare function logFeedbackReasonsToJSON(logFeedbackReasons: LogFeedbackReasons): string;
export declare function logFeedbackReasonsFromJSON(jsonString: string): SafeParseResult<LogFeedbackReasons, SDKValidationError>;
/** @internal */
export declare const LogFeedbackId$inboundSchema: z.ZodType<LogFeedbackId, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackId$Outbound = string | number;
/** @internal */
export declare const LogFeedbackId$outboundSchema: z.ZodType<LogFeedbackId$Outbound, z.ZodTypeDef, LogFeedbackId>;
export declare function logFeedbackIdToJSON(logFeedbackId: LogFeedbackId): string;
export declare function logFeedbackIdFromJSON(jsonString: string): SafeParseResult<LogFeedbackId, SDKValidationError>;
/** @internal */
export declare const LogFeedbackUserId$inboundSchema: z.ZodType<LogFeedbackUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackUserId$Outbound = string | number;
/** @internal */
export declare const LogFeedbackUserId$outboundSchema: z.ZodType<LogFeedbackUserId$Outbound, z.ZodTypeDef, LogFeedbackUserId>;
export declare function logFeedbackUserIdToJSON(logFeedbackUserId: LogFeedbackUserId): string;
export declare function logFeedbackUserIdFromJSON(jsonString: string): SafeParseResult<LogFeedbackUserId, SDKValidationError>;
/** @internal */
export declare const LogFeedbackUserProperties$inboundSchema: z.ZodType<LogFeedbackUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackUserProperties$Outbound = {
    id?: string | number | null | undefined;
    identificationType?: string | null | undefined;
    userId?: string | number | null | undefined;
    supportAgentName?: string | null | undefined;
    userType?: string | null | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const LogFeedbackUserProperties$outboundSchema: z.ZodType<LogFeedbackUserProperties$Outbound, z.ZodTypeDef, LogFeedbackUserProperties>;
export declare function logFeedbackUserPropertiesToJSON(logFeedbackUserProperties: LogFeedbackUserProperties): string;
export declare function logFeedbackUserPropertiesFromJSON(jsonString: string): SafeParseResult<LogFeedbackUserProperties, SDKValidationError>;
/** @internal */
export declare const LogFeedbackFeedbackResponseType$inboundSchema: z.ZodNativeEnum<typeof LogFeedbackFeedbackResponseType>;
/** @internal */
export declare const LogFeedbackFeedbackResponseType$outboundSchema: z.ZodNativeEnum<typeof LogFeedbackFeedbackResponseType>;
/** @internal */
export declare const LogFeedbackSources$inboundSchema: z.ZodType<LogFeedbackSources, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackSources$Outbound = {
    type: string | null;
    title?: string | null | undefined;
    url?: string | null | undefined;
};
/** @internal */
export declare const LogFeedbackSources$outboundSchema: z.ZodType<LogFeedbackSources$Outbound, z.ZodTypeDef, LogFeedbackSources>;
export declare function logFeedbackSourcesToJSON(logFeedbackSources: LogFeedbackSources): string;
export declare function logFeedbackSourcesFromJSON(jsonString: string): SafeParseResult<LogFeedbackSources, SDKValidationError>;
/** @internal */
export declare const LogFeedbackResponseBody$inboundSchema: z.ZodType<LogFeedbackResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type LogFeedbackResponseBody$Outbound = {
    id: string;
    type: string;
    messageId: string;
    createdAt: string;
    updatedAt: string;
    reasons?: Array<LogFeedbackReasons$Outbound> | null | undefined;
    details?: string | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: LogFeedbackUserProperties$Outbound | null | undefined;
    sources?: Array<LogFeedbackSources$Outbound> | null | undefined;
};
/** @internal */
export declare const LogFeedbackResponseBody$outboundSchema: z.ZodType<LogFeedbackResponseBody$Outbound, z.ZodTypeDef, LogFeedbackResponseBody>;
export declare function logFeedbackResponseBodyToJSON(logFeedbackResponseBody: LogFeedbackResponseBody): string;
export declare function logFeedbackResponseBodyFromJSON(jsonString: string): SafeParseResult<LogFeedbackResponseBody, SDKValidationError>;
//# sourceMappingURL=logfeedback.d.ts.map