import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { AIConfigTargetingEnvironmentFallthrough, AIConfigTargetingEnvironmentFallthrough$Outbound } from "./aiconfigtargetingenvironmentfallthrough.js";
import { AIConfigTargetingEnvironmentRule, AIConfigTargetingEnvironmentRule$Outbound } from "./aiconfigtargetingenvironmentrule.js";
import { AIConfigTargetingEnvironmentTarget, AIConfigTargetingEnvironmentTarget$Outbound } from "./aiconfigtargetingenvironmenttarget.js";
export type AIConfigTargetingEnvironment = {
    /**
     * Individual context targets for non-user context kinds
     */
    contextTargets: Array<AIConfigTargetingEnvironmentTarget>;
    /**
     * Whether targeting is on in this environment
     */
    enabled: boolean;
    fallthrough: AIConfigTargetingEnvironmentFallthrough;
    lastModified: number;
    /**
     * Index of the variation served when targeting is off
     */
    offVariation?: number | undefined;
    /**
     * The targeting rules
     */
    rules: Array<AIConfigTargetingEnvironmentRule>;
    /**
     * Individual user targets
     */
    targets: Array<AIConfigTargetingEnvironmentTarget>;
    /**
     * Whether to send detailed events for all evaluations
     */
    trackEvents: boolean;
    /**
     * Whether to send detailed events for evaluations that fall through to the default rule
     */
    trackEventsFallthrough: boolean;
    /**
     * The environment name
     */
    environmentName: string;
    /**
     * The version of the targeting in this environment
     */
    version: number;
};
/** @internal */
export declare const AIConfigTargetingEnvironment$inboundSchema: z.ZodType<AIConfigTargetingEnvironment, z.ZodTypeDef, unknown>;
/** @internal */
export type AIConfigTargetingEnvironment$Outbound = {
    contextTargets: Array<AIConfigTargetingEnvironmentTarget$Outbound>;
    enabled: boolean;
    fallthrough: AIConfigTargetingEnvironmentFallthrough$Outbound;
    lastModified: number;
    offVariation?: number | undefined;
    rules: Array<AIConfigTargetingEnvironmentRule$Outbound>;
    targets: Array<AIConfigTargetingEnvironmentTarget$Outbound>;
    trackEvents: boolean;
    trackEventsFallthrough: boolean;
    _environmentName: string;
    _version: number;
};
/** @internal */
export declare const AIConfigTargetingEnvironment$outboundSchema: z.ZodType<AIConfigTargetingEnvironment$Outbound, z.ZodTypeDef, AIConfigTargetingEnvironment>;
export declare function aiConfigTargetingEnvironmentToJSON(aiConfigTargetingEnvironment: AIConfigTargetingEnvironment): string;
export declare function aiConfigTargetingEnvironmentFromJSON(jsonString: string): SafeParseResult<AIConfigTargetingEnvironment, SDKValidationError>;
//# sourceMappingURL=aiconfigtargetingenvironment.d.ts.map