import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ConversationsField } from "./conversationsfield.js";
import { ConversationsFilterConditionValue, ConversationsFilterConditionValue$Outbound } from "./conversationsfilterconditionvalue.js";
import { FilterOperator } from "./filteroperator.js";
export type Condition = {
    /**
     * Available fields for Conversations
     */
    field: ConversationsField;
    /**
     * Available operators for filtering data
     */
    operator: FilterOperator;
    /**
     * The value to compare the field against. For JSON fields, can be either a JSON object or a {path, value} pair.
     */
    value: ConversationsFilterConditionValue;
};
export type ConversationsFilterCondition = {
    condition: Condition;
};
/** @internal */
export declare const Condition$inboundSchema: z.ZodType<Condition, z.ZodTypeDef, unknown>;
/** @internal */
export type Condition$Outbound = {
    field: string;
    operator: string;
    value: ConversationsFilterConditionValue$Outbound;
};
/** @internal */
export declare const Condition$outboundSchema: z.ZodType<Condition$Outbound, z.ZodTypeDef, Condition>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Condition$ {
    /** @deprecated use `Condition$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Condition, z.ZodTypeDef, unknown>;
    /** @deprecated use `Condition$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Condition$Outbound, z.ZodTypeDef, Condition>;
    /** @deprecated use `Condition$Outbound` instead. */
    type Outbound = Condition$Outbound;
}
export declare function conditionToJSON(condition: Condition): string;
export declare function conditionFromJSON(jsonString: string): SafeParseResult<Condition, SDKValidationError>;
/** @internal */
export declare const ConversationsFilterCondition$inboundSchema: z.ZodType<ConversationsFilterCondition, z.ZodTypeDef, unknown>;
/** @internal */
export type ConversationsFilterCondition$Outbound = {
    condition: Condition$Outbound;
};
/** @internal */
export declare const ConversationsFilterCondition$outboundSchema: z.ZodType<ConversationsFilterCondition$Outbound, z.ZodTypeDef, ConversationsFilterCondition>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ConversationsFilterCondition$ {
    /** @deprecated use `ConversationsFilterCondition$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ConversationsFilterCondition, z.ZodTypeDef, unknown>;
    /** @deprecated use `ConversationsFilterCondition$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ConversationsFilterCondition$Outbound, z.ZodTypeDef, ConversationsFilterCondition>;
    /** @deprecated use `ConversationsFilterCondition$Outbound` instead. */
    type Outbound = ConversationsFilterCondition$Outbound;
}
export declare function conversationsFilterConditionToJSON(conversationsFilterCondition: ConversationsFilterCondition): string;
export declare function conversationsFilterConditionFromJSON(jsonString: string): SafeParseResult<ConversationsFilterCondition, SDKValidationError>;
//# sourceMappingURL=conversationsfiltercondition.d.ts.map