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;
};
/**
 * 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.
     */
    userProperties?: {
        [k: string]: any;
    } | 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;
};
/**
 * 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.
     */
    userProperties?: {
        [k: string]: any;
    } | 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 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;
    userProperties?: {
        [k: string]: any;
    } | 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 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;
    userProperties?: {
        [k: string]: any;
    } | 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