import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ConversationsAggregationSelection, ConversationsAggregationSelection$Outbound } from "./conversationsaggregationselection.js";
import { ConversationsSimpleFieldSelection, ConversationsSimpleFieldSelection$Outbound } from "./conversationssimplefieldselection.js";
import { ConversationsTimeBasedGroupBySelection, ConversationsTimeBasedGroupBySelection$Outbound } from "./conversationstimebasedgroupbyselection.js";
/**
 * Fields to select from conversations
 */
export type ConversationsSelection = (ConversationsSimpleFieldSelection & {
    type: "field";
}) | (ConversationsAggregationSelection & {
    type: "aggregation";
}) | (ConversationsTimeBasedGroupBySelection & {
    type: "time";
});
/** @internal */
export declare const ConversationsSelection$inboundSchema: z.ZodType<ConversationsSelection, z.ZodTypeDef, unknown>;
/** @internal */
export type ConversationsSelection$Outbound = (ConversationsSimpleFieldSelection$Outbound & {
    type: "field";
}) | (ConversationsAggregationSelection$Outbound & {
    type: "aggregation";
}) | (ConversationsTimeBasedGroupBySelection$Outbound & {
    type: "time";
});
/** @internal */
export declare const ConversationsSelection$outboundSchema: z.ZodType<ConversationsSelection$Outbound, z.ZodTypeDef, ConversationsSelection>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ConversationsSelection$ {
    /** @deprecated use `ConversationsSelection$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ConversationsSelection, z.ZodTypeDef, unknown>;
    /** @deprecated use `ConversationsSelection$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ConversationsSelection$Outbound, z.ZodTypeDef, ConversationsSelection>;
    /** @deprecated use `ConversationsSelection$Outbound` instead. */
    type Outbound = ConversationsSelection$Outbound;
}
export declare function conversationsSelectionToJSON(conversationsSelection: ConversationsSelection): string;
export declare function conversationsSelectionFromJSON(jsonString: string): SafeParseResult<ConversationsSelection, SDKValidationError>;
//# sourceMappingURL=conversationsselection.d.ts.map