import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Classifier, Classifier$Outbound } from "./classifier.js";
import { JudgeConfiguration, JudgeConfiguration$Outbound } from "./judgeconfiguration.js";
import { Message, Message$Outbound } from "./message.js";
import { ParentLink, ParentLink$Outbound } from "./parentlink.js";
import { VariationSkill, VariationSkill$Outbound } from "./variationskill.js";
import { VariationTool, VariationTool$Outbound } from "./variationtool.js";
/**
 * Freeform JSON object. LaunchDarkly does not validate the keys. In a model config, `params` and `customParams` hold parameters that the provider's API accepts, for example `{"temperature": 0.7, "maxTokens": 4096}`.
 */
export type AIConfigVariationModel = {};
/**
 * The state of the variation.
 *
 * @remarks
 * - `archived`: The variation is archived. To restore it, update the variation with `state` set to `published`.
 * - `published`: The variation is active.
 */
export declare const AIConfigVariationState: {
    readonly Archived: "archived";
    readonly Published: "published";
};
/**
 * The state of the variation.
 *
 * @remarks
 * - `archived`: The variation is archived. To restore it, update the variation with `state` set to `published`.
 * - `published`: The variation is active.
 */
export type AIConfigVariationState = ClosedEnum<typeof AIConfigVariationState>;
export type AIConfigVariation = {
    links?: ParentLink | undefined;
    /**
     * The color used for this variation in the UI
     */
    color?: string | undefined;
    /**
     * Classifier rules for a judge variation. When this array is non-empty, messages must be empty.
     *
     * @remarks
     */
    classifiers?: Array<Classifier> | undefined;
    /**
     * A comment describing this version of the variation
     */
    comment?: string | undefined;
    /**
     * Returns the description for the agent. This is only returned for agent variations.
     */
    description?: string | undefined;
    /**
     * Returns the instructions for the agent. This is only returned for agent variations.
     */
    instructions?: string | undefined;
    /**
     * The variation key
     */
    key: string;
    /**
     * The variation ID
     */
    id: string;
    /**
     * The prompt messages for this variation
     */
    messages?: Array<Message> | undefined;
    /**
     * Freeform JSON object. LaunchDarkly does not validate the keys. In a model config, `params` and `customParams` hold parameters that the provider's API accepts, for example `{"temperature": 0.7, "maxTokens": 4096}`.
     */
    model: AIConfigVariationModel;
    /**
     * The key of the model config that this variation uses, not the provider model ID. Absent
     *
     * @remarks
     * when the variation does not use a model config.
     */
    modelConfigKey?: string | undefined;
    /**
     * The version of the model config that this variation is pinned to, when it references a
     *
     * @remarks
     * custom model config. Absent when the variation does not reference a model config, when
     * the variation is not pinned to a specific version, or when custom model config versioning
     * is not enabled for the project.
     */
    modelConfigVersion?: number | undefined;
    /**
     * The variation name
     */
    name: string;
    /**
     * JSON Schema defining the structured output format for the variation.
     */
    outputFormat?: {
        [k: string]: any;
    } | undefined;
    createdAt: number;
    /**
     * The version number of this resource
     */
    version: number;
    /**
     * The state of the variation.
     *
     * @remarks
     * - `archived`: The variation is archived. To restore it, update the variation with `state` set to `published`.
     * - `published`: The variation is active.
     */
    state?: AIConfigVariationState | undefined;
    archivedAt?: number | undefined;
    publishedAt?: number | undefined;
    /**
     * The tools this variation can use
     */
    tools?: Array<VariationTool> | undefined;
    /**
     * The agent skills this variation can use
     */
    skills?: Array<VariationSkill> | undefined;
    judgeConfiguration?: JudgeConfiguration | undefined;
    /**
     * Keys of the judge AI Configs attached to this variation
     */
    judgingConfigKeys?: Array<string> | undefined;
};
/** @internal */
export declare const AIConfigVariationModel$inboundSchema: z.ZodType<AIConfigVariationModel, z.ZodTypeDef, unknown>;
/** @internal */
export type AIConfigVariationModel$Outbound = {};
/** @internal */
export declare const AIConfigVariationModel$outboundSchema: z.ZodType<AIConfigVariationModel$Outbound, z.ZodTypeDef, AIConfigVariationModel>;
export declare function aiConfigVariationModelToJSON(aiConfigVariationModel: AIConfigVariationModel): string;
export declare function aiConfigVariationModelFromJSON(jsonString: string): SafeParseResult<AIConfigVariationModel, SDKValidationError>;
/** @internal */
export declare const AIConfigVariationState$inboundSchema: z.ZodNativeEnum<typeof AIConfigVariationState>;
/** @internal */
export declare const AIConfigVariationState$outboundSchema: z.ZodNativeEnum<typeof AIConfigVariationState>;
/** @internal */
export declare const AIConfigVariation$inboundSchema: z.ZodType<AIConfigVariation, z.ZodTypeDef, unknown>;
/** @internal */
export type AIConfigVariation$Outbound = {
    _links?: ParentLink$Outbound | undefined;
    color?: string | undefined;
    classifiers?: Array<Classifier$Outbound> | undefined;
    comment?: string | undefined;
    description?: string | undefined;
    instructions?: string | undefined;
    key: string;
    _id: string;
    messages?: Array<Message$Outbound> | undefined;
    model: AIConfigVariationModel$Outbound;
    modelConfigKey?: string | undefined;
    modelConfigVersion?: number | undefined;
    name: string;
    outputFormat?: {
        [k: string]: any;
    } | undefined;
    createdAt: number;
    version: number;
    state?: string | undefined;
    _archivedAt?: number | undefined;
    _publishedAt?: number | undefined;
    tools?: Array<VariationTool$Outbound> | undefined;
    skills?: Array<VariationSkill$Outbound> | undefined;
    judgeConfiguration?: JudgeConfiguration$Outbound | undefined;
    judgingConfigKeys?: Array<string> | undefined;
};
/** @internal */
export declare const AIConfigVariation$outboundSchema: z.ZodType<AIConfigVariation$Outbound, z.ZodTypeDef, AIConfigVariation>;
export declare function aiConfigVariationToJSON(aiConfigVariation: AIConfigVariation): string;
export declare function aiConfigVariationFromJSON(jsonString: string): SafeParseResult<AIConfigVariation, SDKValidationError>;
//# sourceMappingURL=aiconfigvariation.d.ts.map