import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Clause, Clause$Outbound } from "./clause.js";
import { Rollout, Rollout$Outbound } from "./rollout.js";
export type Rule = {
    /**
     * The flag rule ID
     */
    id?: string | undefined;
    /**
     * Whether the rule is disabled
     */
    disabled?: boolean | undefined;
    /**
     * The index of the variation, from the array of variations for this flag
     */
    variation?: number | undefined;
    rollout?: Rollout | undefined;
    /**
     * An array of clauses used for individual targeting based on attributes
     */
    clauses: Array<Clause>;
    /**
     * Whether the SDK sends a detailed event for every evaluation of this rule, instead of only summary counts. Required for Data Export, but doesn't enable Data Export on its own.
     */
    trackEvents: boolean;
    /**
     * The rule description
     */
    description?: string | undefined;
    ref?: string | undefined;
};
/** @internal */
export declare const Rule$inboundSchema: z.ZodType<Rule, z.ZodTypeDef, unknown>;
/** @internal */
export type Rule$Outbound = {
    _id?: string | undefined;
    disabled?: boolean | undefined;
    variation?: number | undefined;
    rollout?: Rollout$Outbound | undefined;
    clauses: Array<Clause$Outbound>;
    trackEvents: boolean;
    description?: string | undefined;
    ref?: string | undefined;
};
/** @internal */
export declare const Rule$outboundSchema: z.ZodType<Rule$Outbound, z.ZodTypeDef, Rule>;
export declare function ruleToJSON(rule: Rule): string;
export declare function ruleFromJSON(jsonString: string): SafeParseResult<Rule, SDKValidationError>;
//# sourceMappingURL=rule.d.ts.map