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 ConversationsAggregationSelectionType: {
    readonly Aggregation: "aggregation";
};
export type ConversationsAggregationSelectionType = ClosedEnum<typeof ConversationsAggregationSelectionType>;
export declare const Aggregation: {
    readonly Sum: "sum";
    readonly Count: "count";
    readonly Avg: "avg";
    readonly Min: "min";
    readonly Max: "max";
};
export type Aggregation = ClosedEnum<typeof Aggregation>;
export declare const Field: {
    readonly Id: "id";
    readonly UserMessageCount: "userMessageCount";
    readonly OrganizationId: "organizationId";
    readonly ProjectId: "projectId";
    readonly IntegrationId: "integrationId";
    readonly FirstMessageTime: "firstMessageTime";
    readonly Type: "type";
    readonly Properties: "properties";
    readonly UserProperties: "userProperties";
};
export type Field = ClosedEnum<typeof Field>;
export type ConversationsAggregationSelection = {
    type: ConversationsAggregationSelectionType;
    aggregation: Aggregation;
    field?: Field | undefined;
};
/** @internal */
export declare const ConversationsAggregationSelectionType$inboundSchema: z.ZodNativeEnum<typeof ConversationsAggregationSelectionType>;
/** @internal */
export declare const ConversationsAggregationSelectionType$outboundSchema: z.ZodNativeEnum<typeof ConversationsAggregationSelectionType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ConversationsAggregationSelectionType$ {
    /** @deprecated use `ConversationsAggregationSelectionType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Aggregation: "aggregation";
    }>;
    /** @deprecated use `ConversationsAggregationSelectionType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Aggregation: "aggregation";
    }>;
}
/** @internal */
export declare const Aggregation$inboundSchema: z.ZodNativeEnum<typeof Aggregation>;
/** @internal */
export declare const Aggregation$outboundSchema: z.ZodNativeEnum<typeof Aggregation>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Aggregation$ {
    /** @deprecated use `Aggregation$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Sum: "sum";
        readonly Count: "count";
        readonly Avg: "avg";
        readonly Min: "min";
        readonly Max: "max";
    }>;
    /** @deprecated use `Aggregation$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Sum: "sum";
        readonly Count: "count";
        readonly Avg: "avg";
        readonly Min: "min";
        readonly Max: "max";
    }>;
}
/** @internal */
export declare const Field$inboundSchema: z.ZodNativeEnum<typeof Field>;
/** @internal */
export declare const Field$outboundSchema: z.ZodNativeEnum<typeof Field>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Field$ {
    /** @deprecated use `Field$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Id: "id";
        readonly UserMessageCount: "userMessageCount";
        readonly OrganizationId: "organizationId";
        readonly ProjectId: "projectId";
        readonly IntegrationId: "integrationId";
        readonly FirstMessageTime: "firstMessageTime";
        readonly Type: "type";
        readonly Properties: "properties";
        readonly UserProperties: "userProperties";
    }>;
    /** @deprecated use `Field$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Id: "id";
        readonly UserMessageCount: "userMessageCount";
        readonly OrganizationId: "organizationId";
        readonly ProjectId: "projectId";
        readonly IntegrationId: "integrationId";
        readonly FirstMessageTime: "firstMessageTime";
        readonly Type: "type";
        readonly Properties: "properties";
        readonly UserProperties: "userProperties";
    }>;
}
/** @internal */
export declare const ConversationsAggregationSelection$inboundSchema: z.ZodType<ConversationsAggregationSelection, z.ZodTypeDef, unknown>;
/** @internal */
export type ConversationsAggregationSelection$Outbound = {
    type: string;
    aggregation: string;
    field?: string | undefined;
};
/** @internal */
export declare const ConversationsAggregationSelection$outboundSchema: z.ZodType<ConversationsAggregationSelection$Outbound, z.ZodTypeDef, ConversationsAggregationSelection>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ConversationsAggregationSelection$ {
    /** @deprecated use `ConversationsAggregationSelection$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ConversationsAggregationSelection, z.ZodTypeDef, unknown>;
    /** @deprecated use `ConversationsAggregationSelection$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ConversationsAggregationSelection$Outbound, z.ZodTypeDef, ConversationsAggregationSelection>;
    /** @deprecated use `ConversationsAggregationSelection$Outbound` instead. */
    type Outbound = ConversationsAggregationSelection$Outbound;
}
export declare function conversationsAggregationSelectionToJSON(conversationsAggregationSelection: ConversationsAggregationSelection): string;
export declare function conversationsAggregationSelectionFromJSON(jsonString: string): SafeParseResult<ConversationsAggregationSelection, SDKValidationError>;
//# sourceMappingURL=conversationsaggregationselection.d.ts.map