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 { VariationSkillPost, VariationSkillPost$Outbound } from "./variationskillpost.js";
import { VariationToolPost, VariationToolPost$Outbound } from "./variationtoolpost.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 AIConfigVariationPatchModel = {};
/**
 * The state to move the variation to. Omit this field to keep the current state.
 *
 * @remarks
 * - `archived`: Archive a published variation. You cannot archive a variation that is already archived. You also cannot archive the only variation of an AI Config. An AI Config itself cannot be archived.
 * - `published`: Restore an archived variation. You cannot publish a variation that is already published.
 */
export declare const AIConfigVariationPatchState: {
    readonly Archived: "archived";
    readonly Published: "published";
};
/**
 * The state to move the variation to. Omit this field to keep the current state.
 *
 * @remarks
 * - `archived`: Archive a published variation. You cannot archive a variation that is already archived. You also cannot archive the only variation of an AI Config. An AI Config itself cannot be archived.
 * - `published`: Restore an archived variation. You cannot publish a variation that is already published.
 */
export type AIConfigVariationPatchState = ClosedEnum<typeof AIConfigVariationPatchState>;
export type AIConfigVariationPatch = {
    /**
     * Replaces classifier rules on a judge variation. An empty array clears them. When this array is
     *
     * @remarks
     * non-empty, messages must be empty.
     */
    classifiers?: Array<Classifier> | undefined;
    /**
     * Human-readable description of what this patch changes
     */
    comment?: string | undefined;
    /**
     * Description for agent when the config is in agent mode.
     */
    description?: string | undefined;
    /**
     * Instructions for agent when the config is in agent mode.
     */
    instructions?: string | undefined;
    /**
     * 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?: AIConfigVariationPatchModel | undefined;
    /**
     * The key that GET /api/v2/projects/{projectKey}/ai-configs/model-configs returns for the
     *
     * @remarks
     * model config. Do not use a custom model config's ID, which is the provider model ID.
     */
    modelConfigKey?: string | undefined;
    /**
     * The exact model config version to set this variation to. Requires modelConfigKey to be
     *
     * @remarks
     * set (either in this patch or already on the variation), and the version must exist for
     * that model config. When omitted, the variation keeps the version it is currently set to,
     * unless the patch changes modelConfigKey, in which case the variation records the new
     * model config's current (latest) version.
     */
    modelConfigVersion?: number | undefined;
    /**
     * A human-readable name for the variation
     */
    name?: string | undefined;
    /**
     * JSON Schema defining the structured output format for the variation.
     */
    outputFormat?: {
        [k: string]: any;
    } | undefined;
    /**
     * Whether to publish this version of the variation
     */
    published?: boolean | undefined;
    /**
     * The state to move the variation to. Omit this field to keep the current state.
     *
     * @remarks
     * - `archived`: Archive a published variation. You cannot archive a variation that is already archived. You also cannot archive the only variation of an AI Config. An AI Config itself cannot be archived.
     * - `published`: Restore an archived variation. You cannot publish a variation that is already published.
     */
    state?: AIConfigVariationPatchState | undefined;
    /**
     * List of tools to use for this variation. The latest version of the tool will be used.
     */
    tools?: Array<VariationToolPost> | undefined;
    /**
     * List of tool keys to use for this variation. The latest version of the tool will be used.
     */
    toolKeys?: Array<string> | undefined;
    /**
     * List of agent skills to attach to this variation. Replaces the current attachments.
     */
    skills?: Array<VariationSkillPost> | undefined;
    judgeConfiguration?: JudgeConfiguration | undefined;
};
/** @internal */
export declare const AIConfigVariationPatchModel$inboundSchema: z.ZodType<AIConfigVariationPatchModel, z.ZodTypeDef, unknown>;
/** @internal */
export type AIConfigVariationPatchModel$Outbound = {};
/** @internal */
export declare const AIConfigVariationPatchModel$outboundSchema: z.ZodType<AIConfigVariationPatchModel$Outbound, z.ZodTypeDef, AIConfigVariationPatchModel>;
export declare function aiConfigVariationPatchModelToJSON(aiConfigVariationPatchModel: AIConfigVariationPatchModel): string;
export declare function aiConfigVariationPatchModelFromJSON(jsonString: string): SafeParseResult<AIConfigVariationPatchModel, SDKValidationError>;
/** @internal */
export declare const AIConfigVariationPatchState$inboundSchema: z.ZodNativeEnum<typeof AIConfigVariationPatchState>;
/** @internal */
export declare const AIConfigVariationPatchState$outboundSchema: z.ZodNativeEnum<typeof AIConfigVariationPatchState>;
/** @internal */
export declare const AIConfigVariationPatch$inboundSchema: z.ZodType<AIConfigVariationPatch, z.ZodTypeDef, unknown>;
/** @internal */
export type AIConfigVariationPatch$Outbound = {
    classifiers?: Array<Classifier$Outbound> | undefined;
    comment?: string | undefined;
    description?: string | undefined;
    instructions?: string | undefined;
    messages?: Array<Message$Outbound> | undefined;
    model?: AIConfigVariationPatchModel$Outbound | undefined;
    modelConfigKey?: string | undefined;
    modelConfigVersion?: number | undefined;
    name?: string | undefined;
    outputFormat?: {
        [k: string]: any;
    } | undefined;
    published?: boolean | undefined;
    state?: string | undefined;
    tools?: Array<VariationToolPost$Outbound> | undefined;
    toolKeys?: Array<string> | undefined;
    skills?: Array<VariationSkillPost$Outbound> | undefined;
    judgeConfiguration?: JudgeConfiguration$Outbound | undefined;
};
/** @internal */
export declare const AIConfigVariationPatch$outboundSchema: z.ZodType<AIConfigVariationPatch$Outbound, z.ZodTypeDef, AIConfigVariationPatch>;
export declare function aiConfigVariationPatchToJSON(aiConfigVariationPatch: AIConfigVariationPatch): string;
export declare function aiConfigVariationPatchFromJSON(jsonString: string): SafeParseResult<AIConfigVariationPatch, SDKValidationError>;
//# sourceMappingURL=aiconfigvariationpatch.d.ts.map