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 { TimeUnit } from "./timeunit.js";
export declare const FeedbackTimeBasedGroupBySelectionType: {
    readonly Time: "time";
};
export type FeedbackTimeBasedGroupBySelectionType = ClosedEnum<typeof FeedbackTimeBasedGroupBySelectionType>;
export declare const FeedbackTimeBasedGroupBySelectionField: {
    readonly Id: "id";
    readonly Type: "type";
    readonly MessageId: "messageId";
    readonly CreatedAt: "createdAt";
    readonly OrganizationId: "organizationId";
    readonly Reasons: "reasons";
    readonly Properties: "properties";
    readonly UserProperties: "userProperties";
    readonly ConversationId: "conversationId";
    readonly ProjectId: "projectId";
    readonly IntegrationId: "integrationId";
};
export type FeedbackTimeBasedGroupBySelectionField = ClosedEnum<typeof FeedbackTimeBasedGroupBySelectionField>;
export type FeedbackTimeBasedGroupBySelection = {
    type: FeedbackTimeBasedGroupBySelectionType;
    /**
     * Valid time units for time-based operations
     */
    timeUnit: TimeUnit;
    field?: FeedbackTimeBasedGroupBySelectionField | undefined;
};
/** @internal */
export declare const FeedbackTimeBasedGroupBySelectionType$inboundSchema: z.ZodNativeEnum<typeof FeedbackTimeBasedGroupBySelectionType>;
/** @internal */
export declare const FeedbackTimeBasedGroupBySelectionType$outboundSchema: z.ZodNativeEnum<typeof FeedbackTimeBasedGroupBySelectionType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace FeedbackTimeBasedGroupBySelectionType$ {
    /** @deprecated use `FeedbackTimeBasedGroupBySelectionType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Time: "time";
    }>;
    /** @deprecated use `FeedbackTimeBasedGroupBySelectionType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Time: "time";
    }>;
}
/** @internal */
export declare const FeedbackTimeBasedGroupBySelectionField$inboundSchema: z.ZodNativeEnum<typeof FeedbackTimeBasedGroupBySelectionField>;
/** @internal */
export declare const FeedbackTimeBasedGroupBySelectionField$outboundSchema: z.ZodNativeEnum<typeof FeedbackTimeBasedGroupBySelectionField>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace FeedbackTimeBasedGroupBySelectionField$ {
    /** @deprecated use `FeedbackTimeBasedGroupBySelectionField$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Id: "id";
        readonly Type: "type";
        readonly MessageId: "messageId";
        readonly CreatedAt: "createdAt";
        readonly OrganizationId: "organizationId";
        readonly Reasons: "reasons";
        readonly Properties: "properties";
        readonly UserProperties: "userProperties";
        readonly ConversationId: "conversationId";
        readonly ProjectId: "projectId";
        readonly IntegrationId: "integrationId";
    }>;
    /** @deprecated use `FeedbackTimeBasedGroupBySelectionField$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Id: "id";
        readonly Type: "type";
        readonly MessageId: "messageId";
        readonly CreatedAt: "createdAt";
        readonly OrganizationId: "organizationId";
        readonly Reasons: "reasons";
        readonly Properties: "properties";
        readonly UserProperties: "userProperties";
        readonly ConversationId: "conversationId";
        readonly ProjectId: "projectId";
        readonly IntegrationId: "integrationId";
    }>;
}
/** @internal */
export declare const FeedbackTimeBasedGroupBySelection$inboundSchema: z.ZodType<FeedbackTimeBasedGroupBySelection, z.ZodTypeDef, unknown>;
/** @internal */
export type FeedbackTimeBasedGroupBySelection$Outbound = {
    type: string;
    timeUnit: string;
    field?: string | undefined;
};
/** @internal */
export declare const FeedbackTimeBasedGroupBySelection$outboundSchema: z.ZodType<FeedbackTimeBasedGroupBySelection$Outbound, z.ZodTypeDef, FeedbackTimeBasedGroupBySelection>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace FeedbackTimeBasedGroupBySelection$ {
    /** @deprecated use `FeedbackTimeBasedGroupBySelection$inboundSchema` instead. */
    const inboundSchema: z.ZodType<FeedbackTimeBasedGroupBySelection, z.ZodTypeDef, unknown>;
    /** @deprecated use `FeedbackTimeBasedGroupBySelection$outboundSchema` instead. */
    const outboundSchema: z.ZodType<FeedbackTimeBasedGroupBySelection$Outbound, z.ZodTypeDef, FeedbackTimeBasedGroupBySelection>;
    /** @deprecated use `FeedbackTimeBasedGroupBySelection$Outbound` instead. */
    type Outbound = FeedbackTimeBasedGroupBySelection$Outbound;
}
export declare function feedbackTimeBasedGroupBySelectionToJSON(feedbackTimeBasedGroupBySelection: FeedbackTimeBasedGroupBySelection): string;
export declare function feedbackTimeBasedGroupBySelectionFromJSON(jsonString: string): SafeParseResult<FeedbackTimeBasedGroupBySelection, SDKValidationError>;
//# sourceMappingURL=feedbacktimebasedgroupbyselection.d.ts.map