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";
import { Conversation, Conversation$Outbound } from "./conversation.js";
import { Message, Message$Outbound } from "./message.js";
export declare const GetAllFeedbackResponseType: {
    readonly Positive: "positive";
    readonly Negative: "negative";
};
export type GetAllFeedbackResponseType = ClosedEnum<typeof GetAllFeedbackResponseType>;
export type Reasons = {
    label: string;
    details: string;
};
export type PositiveFeedback = {
    id: string;
    type: GetAllFeedbackResponseType;
    messageId: string;
    createdAt: string;
    reasons?: Array<Reasons> | null | undefined;
    /**
     * A customizable collection of custom properties or attributes.
     */
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
    conversation: Conversation;
    message: Message;
};
export declare const GetAllFeedbackResponseNegativeFeedbackType: {
    readonly Positive: "positive";
    readonly Negative: "negative";
};
export type GetAllFeedbackResponseNegativeFeedbackType = ClosedEnum<typeof GetAllFeedbackResponseNegativeFeedbackType>;
export type GetAllFeedbackResponseReasons = {
    label: string;
    details: string;
};
export type NegativeFeedback = {
    id: string;
    type: GetAllFeedbackResponseNegativeFeedbackType;
    messageId: string;
    createdAt: string;
    reasons?: Array<GetAllFeedbackResponseReasons> | null | undefined;
    /**
     * A customizable collection of custom properties or attributes.
     */
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
    conversation: Conversation;
    message: Message;
};
export type GetAllFeedbackResponse = {
    positiveFeedbackCount: number;
    negativeFeedbackCount: number;
    positiveFeedback: Array<PositiveFeedback>;
    negativeFeedback: Array<NegativeFeedback>;
};
/** @internal */
export declare const GetAllFeedbackResponseType$inboundSchema: z.ZodNativeEnum<typeof GetAllFeedbackResponseType>;
/** @internal */
export declare const GetAllFeedbackResponseType$outboundSchema: z.ZodNativeEnum<typeof GetAllFeedbackResponseType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllFeedbackResponseType$ {
    /** @deprecated use `GetAllFeedbackResponseType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
    /** @deprecated use `GetAllFeedbackResponseType$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 PositiveFeedback$inboundSchema: z.ZodType<PositiveFeedback, z.ZodTypeDef, unknown>;
/** @internal */
export type PositiveFeedback$Outbound = {
    id: string;
    type: string;
    messageId: string;
    createdAt: string;
    reasons?: Array<Reasons$Outbound> | null | undefined;
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
    conversation: Conversation$Outbound;
    message: Message$Outbound;
};
/** @internal */
export declare const PositiveFeedback$outboundSchema: z.ZodType<PositiveFeedback$Outbound, z.ZodTypeDef, PositiveFeedback>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PositiveFeedback$ {
    /** @deprecated use `PositiveFeedback$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PositiveFeedback, z.ZodTypeDef, unknown>;
    /** @deprecated use `PositiveFeedback$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PositiveFeedback$Outbound, z.ZodTypeDef, PositiveFeedback>;
    /** @deprecated use `PositiveFeedback$Outbound` instead. */
    type Outbound = PositiveFeedback$Outbound;
}
export declare function positiveFeedbackToJSON(positiveFeedback: PositiveFeedback): string;
export declare function positiveFeedbackFromJSON(jsonString: string): SafeParseResult<PositiveFeedback, SDKValidationError>;
/** @internal */
export declare const GetAllFeedbackResponseNegativeFeedbackType$inboundSchema: z.ZodNativeEnum<typeof GetAllFeedbackResponseNegativeFeedbackType>;
/** @internal */
export declare const GetAllFeedbackResponseNegativeFeedbackType$outboundSchema: z.ZodNativeEnum<typeof GetAllFeedbackResponseNegativeFeedbackType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllFeedbackResponseNegativeFeedbackType$ {
    /** @deprecated use `GetAllFeedbackResponseNegativeFeedbackType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
    /** @deprecated use `GetAllFeedbackResponseNegativeFeedbackType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Positive: "positive";
        readonly Negative: "negative";
    }>;
}
/** @internal */
export declare const GetAllFeedbackResponseReasons$inboundSchema: z.ZodType<GetAllFeedbackResponseReasons, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllFeedbackResponseReasons$Outbound = {
    label: string;
    details: string;
};
/** @internal */
export declare const GetAllFeedbackResponseReasons$outboundSchema: z.ZodType<GetAllFeedbackResponseReasons$Outbound, z.ZodTypeDef, GetAllFeedbackResponseReasons>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllFeedbackResponseReasons$ {
    /** @deprecated use `GetAllFeedbackResponseReasons$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllFeedbackResponseReasons, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllFeedbackResponseReasons$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllFeedbackResponseReasons$Outbound, z.ZodTypeDef, GetAllFeedbackResponseReasons>;
    /** @deprecated use `GetAllFeedbackResponseReasons$Outbound` instead. */
    type Outbound = GetAllFeedbackResponseReasons$Outbound;
}
export declare function getAllFeedbackResponseReasonsToJSON(getAllFeedbackResponseReasons: GetAllFeedbackResponseReasons): string;
export declare function getAllFeedbackResponseReasonsFromJSON(jsonString: string): SafeParseResult<GetAllFeedbackResponseReasons, SDKValidationError>;
/** @internal */
export declare const NegativeFeedback$inboundSchema: z.ZodType<NegativeFeedback, z.ZodTypeDef, unknown>;
/** @internal */
export type NegativeFeedback$Outbound = {
    id: string;
    type: string;
    messageId: string;
    createdAt: string;
    reasons?: Array<GetAllFeedbackResponseReasons$Outbound> | null | undefined;
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
    conversation: Conversation$Outbound;
    message: Message$Outbound;
};
/** @internal */
export declare const NegativeFeedback$outboundSchema: z.ZodType<NegativeFeedback$Outbound, z.ZodTypeDef, NegativeFeedback>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace NegativeFeedback$ {
    /** @deprecated use `NegativeFeedback$inboundSchema` instead. */
    const inboundSchema: z.ZodType<NegativeFeedback, z.ZodTypeDef, unknown>;
    /** @deprecated use `NegativeFeedback$outboundSchema` instead. */
    const outboundSchema: z.ZodType<NegativeFeedback$Outbound, z.ZodTypeDef, NegativeFeedback>;
    /** @deprecated use `NegativeFeedback$Outbound` instead. */
    type Outbound = NegativeFeedback$Outbound;
}
export declare function negativeFeedbackToJSON(negativeFeedback: NegativeFeedback): string;
export declare function negativeFeedbackFromJSON(jsonString: string): SafeParseResult<NegativeFeedback, SDKValidationError>;
/** @internal */
export declare const GetAllFeedbackResponse$inboundSchema: z.ZodType<GetAllFeedbackResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllFeedbackResponse$Outbound = {
    positiveFeedbackCount: number;
    negativeFeedbackCount: number;
    positiveFeedback: Array<PositiveFeedback$Outbound>;
    negativeFeedback: Array<NegativeFeedback$Outbound>;
};
/** @internal */
export declare const GetAllFeedbackResponse$outboundSchema: z.ZodType<GetAllFeedbackResponse$Outbound, z.ZodTypeDef, GetAllFeedbackResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllFeedbackResponse$ {
    /** @deprecated use `GetAllFeedbackResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllFeedbackResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllFeedbackResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllFeedbackResponse$Outbound, z.ZodTypeDef, GetAllFeedbackResponse>;
    /** @deprecated use `GetAllFeedbackResponse$Outbound` instead. */
    type Outbound = GetAllFeedbackResponse$Outbound;
}
export declare function getAllFeedbackResponseToJSON(getAllFeedbackResponse: GetAllFeedbackResponse): string;
export declare function getAllFeedbackResponseFromJSON(jsonString: string): SafeParseResult<GetAllFeedbackResponse, SDKValidationError>;
//# sourceMappingURL=getallfeedbackresponse.d.ts.map