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";
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;
    additionalProperties?: {
        [k: string]: any;
    };
};
/**
 * Note: The maximum size of the request body is 2 MB.
 */
export type SubmitFeedbackRequestBody = {
    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;
    reasons?: Array<Reasons> | 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;
};
export declare const SubmitFeedbackType: {
    readonly Positive: "positive";
    readonly Negative: "negative";
};
export type SubmitFeedbackType = ClosedEnum<typeof SubmitFeedbackType>;
export type SubmitFeedbackReasons = {
    label: string;
    details: string;
};
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type SubmitFeedbackId = 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 SubmitFeedbackUserId = 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 SubmitFeedbackUserProperties = {
    /**
     * 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;
    };
};
/**
 * Feedback provided successfully
 */
export type SubmitFeedbackResponseBody = {
    id: string;
    type: SubmitFeedbackType;
    messageId: string;
    createdAt: string;
    reasons?: Array<SubmitFeedbackReasons> | 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?: SubmitFeedbackUserProperties | null | undefined;
};
/** @internal */
export declare const Type$inboundSchema: z.ZodNativeEnum<typeof Type>;
/** @internal */
export declare const Type$outboundSchema: z.ZodNativeEnum<typeof Type>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Type$ {
    /** @deprecated use `Type$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
    /** @deprecated use `Type$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
}
/** @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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Reasons$ {
    /** @deprecated use `Reasons$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Reasons, z.ZodTypeDef, unknown>;
    /** @deprecated use `Reasons$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Reasons$Outbound, z.ZodTypeDef, Reasons>;
    /** @deprecated use `Reasons$Outbound` instead. */
    type Outbound = Reasons$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Id$ {
    /** @deprecated use `Id$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Id, z.ZodTypeDef, unknown>;
    /** @deprecated use `Id$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Id$Outbound, z.ZodTypeDef, Id>;
    /** @deprecated use `Id$Outbound` instead. */
    type Outbound = Id$Outbound;
}
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>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UserId$ {
    /** @deprecated use `UserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `UserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UserId$Outbound, z.ZodTypeDef, UserId>;
    /** @deprecated use `UserId$Outbound` instead. */
    type Outbound = UserId$Outbound;
}
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;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const UserProperties$outboundSchema: z.ZodType<UserProperties$Outbound, z.ZodTypeDef, UserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UserProperties$ {
    /** @deprecated use `UserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `UserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UserProperties$Outbound, z.ZodTypeDef, UserProperties>;
    /** @deprecated use `UserProperties$Outbound` instead. */
    type Outbound = UserProperties$Outbound;
}
export declare function userPropertiesToJSON(userProperties: UserProperties): string;
export declare function userPropertiesFromJSON(jsonString: string): SafeParseResult<UserProperties, SDKValidationError>;
/** @internal */
export declare const SubmitFeedbackRequestBody$inboundSchema: z.ZodType<SubmitFeedbackRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type SubmitFeedbackRequestBody$Outbound = {
    id?: string | undefined;
    type: string;
    messageId: string;
    createdAt?: string | null | undefined;
    reasons?: Array<Reasons$Outbound> | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: UserProperties$Outbound | null | undefined;
};
/** @internal */
export declare const SubmitFeedbackRequestBody$outboundSchema: z.ZodType<SubmitFeedbackRequestBody$Outbound, z.ZodTypeDef, SubmitFeedbackRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackRequestBody$ {
    /** @deprecated use `SubmitFeedbackRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SubmitFeedbackRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `SubmitFeedbackRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SubmitFeedbackRequestBody$Outbound, z.ZodTypeDef, SubmitFeedbackRequestBody>;
    /** @deprecated use `SubmitFeedbackRequestBody$Outbound` instead. */
    type Outbound = SubmitFeedbackRequestBody$Outbound;
}
export declare function submitFeedbackRequestBodyToJSON(submitFeedbackRequestBody: SubmitFeedbackRequestBody): string;
export declare function submitFeedbackRequestBodyFromJSON(jsonString: string): SafeParseResult<SubmitFeedbackRequestBody, SDKValidationError>;
/** @internal */
export declare const SubmitFeedbackType$inboundSchema: z.ZodNativeEnum<typeof SubmitFeedbackType>;
/** @internal */
export declare const SubmitFeedbackType$outboundSchema: z.ZodNativeEnum<typeof SubmitFeedbackType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackType$ {
    /** @deprecated use `SubmitFeedbackType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
    /** @deprecated use `SubmitFeedbackType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
}
/** @internal */
export declare const SubmitFeedbackReasons$inboundSchema: z.ZodType<SubmitFeedbackReasons, z.ZodTypeDef, unknown>;
/** @internal */
export type SubmitFeedbackReasons$Outbound = {
    label: string;
    details: string;
};
/** @internal */
export declare const SubmitFeedbackReasons$outboundSchema: z.ZodType<SubmitFeedbackReasons$Outbound, z.ZodTypeDef, SubmitFeedbackReasons>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackReasons$ {
    /** @deprecated use `SubmitFeedbackReasons$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SubmitFeedbackReasons, z.ZodTypeDef, unknown>;
    /** @deprecated use `SubmitFeedbackReasons$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SubmitFeedbackReasons$Outbound, z.ZodTypeDef, SubmitFeedbackReasons>;
    /** @deprecated use `SubmitFeedbackReasons$Outbound` instead. */
    type Outbound = SubmitFeedbackReasons$Outbound;
}
export declare function submitFeedbackReasonsToJSON(submitFeedbackReasons: SubmitFeedbackReasons): string;
export declare function submitFeedbackReasonsFromJSON(jsonString: string): SafeParseResult<SubmitFeedbackReasons, SDKValidationError>;
/** @internal */
export declare const SubmitFeedbackId$inboundSchema: z.ZodType<SubmitFeedbackId, z.ZodTypeDef, unknown>;
/** @internal */
export type SubmitFeedbackId$Outbound = string | number;
/** @internal */
export declare const SubmitFeedbackId$outboundSchema: z.ZodType<SubmitFeedbackId$Outbound, z.ZodTypeDef, SubmitFeedbackId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackId$ {
    /** @deprecated use `SubmitFeedbackId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SubmitFeedbackId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SubmitFeedbackId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SubmitFeedbackId$Outbound, z.ZodTypeDef, SubmitFeedbackId>;
    /** @deprecated use `SubmitFeedbackId$Outbound` instead. */
    type Outbound = SubmitFeedbackId$Outbound;
}
export declare function submitFeedbackIdToJSON(submitFeedbackId: SubmitFeedbackId): string;
export declare function submitFeedbackIdFromJSON(jsonString: string): SafeParseResult<SubmitFeedbackId, SDKValidationError>;
/** @internal */
export declare const SubmitFeedbackUserId$inboundSchema: z.ZodType<SubmitFeedbackUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SubmitFeedbackUserId$Outbound = string | number;
/** @internal */
export declare const SubmitFeedbackUserId$outboundSchema: z.ZodType<SubmitFeedbackUserId$Outbound, z.ZodTypeDef, SubmitFeedbackUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackUserId$ {
    /** @deprecated use `SubmitFeedbackUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SubmitFeedbackUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SubmitFeedbackUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SubmitFeedbackUserId$Outbound, z.ZodTypeDef, SubmitFeedbackUserId>;
    /** @deprecated use `SubmitFeedbackUserId$Outbound` instead. */
    type Outbound = SubmitFeedbackUserId$Outbound;
}
export declare function submitFeedbackUserIdToJSON(submitFeedbackUserId: SubmitFeedbackUserId): string;
export declare function submitFeedbackUserIdFromJSON(jsonString: string): SafeParseResult<SubmitFeedbackUserId, SDKValidationError>;
/** @internal */
export declare const SubmitFeedbackUserProperties$inboundSchema: z.ZodType<SubmitFeedbackUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SubmitFeedbackUserProperties$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 SubmitFeedbackUserProperties$outboundSchema: z.ZodType<SubmitFeedbackUserProperties$Outbound, z.ZodTypeDef, SubmitFeedbackUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackUserProperties$ {
    /** @deprecated use `SubmitFeedbackUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SubmitFeedbackUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `SubmitFeedbackUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SubmitFeedbackUserProperties$Outbound, z.ZodTypeDef, SubmitFeedbackUserProperties>;
    /** @deprecated use `SubmitFeedbackUserProperties$Outbound` instead. */
    type Outbound = SubmitFeedbackUserProperties$Outbound;
}
export declare function submitFeedbackUserPropertiesToJSON(submitFeedbackUserProperties: SubmitFeedbackUserProperties): string;
export declare function submitFeedbackUserPropertiesFromJSON(jsonString: string): SafeParseResult<SubmitFeedbackUserProperties, SDKValidationError>;
/** @internal */
export declare const SubmitFeedbackResponseBody$inboundSchema: z.ZodType<SubmitFeedbackResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type SubmitFeedbackResponseBody$Outbound = {
    id: string;
    type: string;
    messageId: string;
    createdAt: string;
    reasons?: Array<SubmitFeedbackReasons$Outbound> | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: SubmitFeedbackUserProperties$Outbound | null | undefined;
};
/** @internal */
export declare const SubmitFeedbackResponseBody$outboundSchema: z.ZodType<SubmitFeedbackResponseBody$Outbound, z.ZodTypeDef, SubmitFeedbackResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SubmitFeedbackResponseBody$ {
    /** @deprecated use `SubmitFeedbackResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SubmitFeedbackResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `SubmitFeedbackResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SubmitFeedbackResponseBody$Outbound, z.ZodTypeDef, SubmitFeedbackResponseBody>;
    /** @deprecated use `SubmitFeedbackResponseBody$Outbound` instead. */
    type Outbound = SubmitFeedbackResponseBody$Outbound;
}
export declare function submitFeedbackResponseBodyToJSON(submitFeedbackResponseBody: SubmitFeedbackResponseBody): string;
export declare function submitFeedbackResponseBodyFromJSON(jsonString: string): SafeParseResult<SubmitFeedbackResponseBody, SDKValidationError>;
//# sourceMappingURL=submitfeedback.d.ts.map