import { z } from "zod";

//#region src/contracts/blobs.d.ts
/**
 * Portable blob reference format used across API/UI boundaries.
 * Example URI: promptfoo://blob/<hash>
 */
interface BlobRef {
  uri: string;
  hash: string;
  mimeType: string;
  sizeBytes: number;
  provider: string;
}
//#endregion
//#region src/contracts/env.d.ts
declare const ProviderEnvOverridesSchema: z.ZodObject<{
  ABLIT_API_BASE_URL: z.ZodOptional<z.ZodString>;
  ABLIT_KEY: z.ZodOptional<z.ZodString>;
  AI21_API_BASE_URL: z.ZodOptional<z.ZodString>;
  AI21_API_KEY: z.ZodOptional<z.ZodString>;
  AIML_API_KEY: z.ZodOptional<z.ZodString>;
  ANTHROPIC_API_KEY: z.ZodOptional<z.ZodString>;
  ANTHROPIC_BASE_URL: z.ZodOptional<z.ZodString>;
  ATLASCLOUD_API_KEY: z.ZodOptional<z.ZodString>;
  AWS_BEARER_TOKEN_BEDROCK: z.ZodOptional<z.ZodString>;
  AWS_BEDROCK_REGION: z.ZodOptional<z.ZodString>;
  AZURE_API_BASE_URL: z.ZodOptional<z.ZodString>;
  AZURE_API_HOST: z.ZodOptional<z.ZodString>;
  AZURE_API_KEY: z.ZodOptional<z.ZodString>;
  AZURE_AUTHORITY_HOST: z.ZodOptional<z.ZodString>;
  AZURE_CLIENT_ID: z.ZodOptional<z.ZodString>;
  AZURE_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
  AZURE_DEPLOYMENT_NAME: z.ZodOptional<z.ZodString>;
  AZURE_EMBEDDING_DEPLOYMENT_NAME: z.ZodOptional<z.ZodString>;
  AZURE_OPENAI_API_BASE_URL: z.ZodOptional<z.ZodString>;
  AZURE_OPENAI_API_HOST: z.ZodOptional<z.ZodString>;
  AZURE_OPENAI_API_KEY: z.ZodOptional<z.ZodString>;
  AZURE_OPENAI_BASE_URL: z.ZodOptional<z.ZodString>;
  AZURE_OPENAI_DEPLOYMENT_NAME: z.ZodOptional<z.ZodString>;
  AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME: z.ZodOptional<z.ZodString>;
  AZURE_TENANT_ID: z.ZodOptional<z.ZodString>;
  AZURE_TOKEN_SCOPE: z.ZodOptional<z.ZodString>;
  CLAUDE_CODE_USE_BEDROCK: z.ZodOptional<z.ZodString>;
  CLAUDE_CODE_USE_VERTEX: z.ZodOptional<z.ZodString>;
  CLOUDFLARE_ACCOUNT_ID: z.ZodOptional<z.ZodString>;
  CLOUDFLARE_API_KEY: z.ZodOptional<z.ZodString>;
  CLOUDFLARE_GATEWAY_ID: z.ZodOptional<z.ZodString>;
  CF_AIG_TOKEN: z.ZodOptional<z.ZodString>;
  COMETAPI_KEY: z.ZodOptional<z.ZodString>;
  COHERE_API_KEY: z.ZodOptional<z.ZodString>;
  COHERE_CLIENT_NAME: z.ZodOptional<z.ZodString>;
  DATABRICKS_TOKEN: z.ZodOptional<z.ZodString>;
  DATABRICKS_WORKSPACE_URL: z.ZodOptional<z.ZodString>;
  DOCKER_MODEL_RUNNER_BASE_URL: z.ZodOptional<z.ZodString>;
  DOCKER_MODEL_RUNNER_API_KEY: z.ZodOptional<z.ZodString>;
  ELEVENLABS_API_KEY: z.ZodOptional<z.ZodString>;
  FAL_KEY: z.ZodOptional<z.ZodString>;
  FIREWORKS_API_BASE_URL: z.ZodOptional<z.ZodString>;
  FIREWORKS_API_KEY: z.ZodOptional<z.ZodString>;
  GITHUB_TOKEN: z.ZodOptional<z.ZodString>;
  GOOGLE_API_HOST: z.ZodOptional<z.ZodString>;
  GOOGLE_API_BASE_URL: z.ZodOptional<z.ZodString>;
  GOOGLE_API_KEY: z.ZodOptional<z.ZodString>;
  GOOGLE_PROJECT_ID: z.ZodOptional<z.ZodString>;
  GOOGLE_LOCATION: z.ZodOptional<z.ZodString>;
  GOOGLE_GENERATIVE_AI_API_KEY: z.ZodOptional<z.ZodString>;
  GEMINI_API_KEY: z.ZodOptional<z.ZodString>;
  GROQ_API_KEY: z.ZodOptional<z.ZodString>;
  HELICONE_API_KEY: z.ZodOptional<z.ZodString>;
  HF_API_TOKEN: z.ZodOptional<z.ZodString>;
  HF_TOKEN: z.ZodOptional<z.ZodString>;
  HYPERBOLIC_API_KEY: z.ZodOptional<z.ZodString>;
  HUGGING_FACE_HUB_TOKEN: z.ZodOptional<z.ZodString>;
  JFROG_API_KEY: z.ZodOptional<z.ZodString>;
  LANGFUSE_HOST: z.ZodOptional<z.ZodString>;
  LANGFUSE_PUBLIC_KEY: z.ZodOptional<z.ZodString>;
  LANGFUSE_SECRET_KEY: z.ZodOptional<z.ZodString>;
  LITELLM_API_BASE: z.ZodOptional<z.ZodString>;
  LLAMA_BASE_URL: z.ZodOptional<z.ZodString>;
  LOCALAI_BASE_URL: z.ZodOptional<z.ZodString>;
  MISTRAL_API_BASE_URL: z.ZodOptional<z.ZodString>;
  MISTRAL_API_HOST: z.ZodOptional<z.ZodString>;
  MISTRAL_API_KEY: z.ZodOptional<z.ZodString>;
  MINIMAX_API_KEY: z.ZodOptional<z.ZodString>;
  MLFLOW_GATEWAY_API_KEY: z.ZodOptional<z.ZodString>;
  MLFLOW_GATEWAY_URL: z.ZodOptional<z.ZodString>;
  MODELSLAB_API_KEY: z.ZodOptional<z.ZodString>;
  N8N_API_KEY: z.ZodOptional<z.ZodString>;
  NSCALE_SERVICE_TOKEN: z.ZodOptional<z.ZodString>;
  NSCALE_API_KEY: z.ZodOptional<z.ZodString>;
  NOVITA_API_KEY: z.ZodOptional<z.ZodString>;
  NVIDIA_API_BASE_URL: z.ZodOptional<z.ZodString>;
  NVIDIA_API_KEY: z.ZodOptional<z.ZodString>;
  OLLAMA_API_KEY: z.ZodOptional<z.ZodString>;
  OLLAMA_BASE_URL: z.ZodOptional<z.ZodString>;
  OPENAI_API_BASE_URL: z.ZodOptional<z.ZodString>;
  OPENAI_API_HOST: z.ZodOptional<z.ZodString>;
  OPENAI_API_KEY: z.ZodOptional<z.ZodString>;
  OPENAI_BASE_URL: z.ZodOptional<z.ZodString>;
  OPENAI_ORGANIZATION: z.ZodOptional<z.ZodString>;
  CLAWDBOT_GATEWAY_PASSWORD: z.ZodOptional<z.ZodString>;
  CLAWDBOT_GATEWAY_TOKEN: z.ZodOptional<z.ZodString>;
  CLAWDBOT_GATEWAY_URL: z.ZodOptional<z.ZodString>;
  CODEX_API_KEY: z.ZodOptional<z.ZodString>;
  OPENCLAW_CONFIG_PATH: z.ZodOptional<z.ZodString>;
  OPENCLAW_GATEWAY_PASSWORD: z.ZodOptional<z.ZodString>;
  OPENCLAW_GATEWAY_PORT: z.ZodOptional<z.ZodString>;
  OPENCLAW_GATEWAY_TOKEN: z.ZodOptional<z.ZodString>;
  OPENCLAW_GATEWAY_URL: z.ZodOptional<z.ZodString>;
  ORCAROUTER_API_KEY: z.ZodOptional<z.ZodString>;
  PALM_API_HOST: z.ZodOptional<z.ZodString>;
  PALM_API_KEY: z.ZodOptional<z.ZodString>;
  PORTKEY_API_KEY: z.ZodOptional<z.ZodString>;
  PROMPTFOO_CA_CERT_PATH: z.ZodOptional<z.ZodString>;
  PROMPTFOO_PFX_CERT_PATH: z.ZodOptional<z.ZodString>;
  PROMPTFOO_PFX_PASSWORD: z.ZodOptional<z.ZodString>;
  PROMPTFOO_JKS_CERT_PATH: z.ZodOptional<z.ZodString>;
  PROMPTFOO_JKS_PASSWORD: z.ZodOptional<z.ZodString>;
  PROMPTFOO_JKS_ALIAS: z.ZodOptional<z.ZodString>;
  PROMPTFOO_INSECURE_SSL: z.ZodOptional<z.ZodString>;
  QUIVERAI_API_KEY: z.ZodOptional<z.ZodString>;
  REPLICATE_API_KEY: z.ZodOptional<z.ZodString>;
  REPLICATE_API_TOKEN: z.ZodOptional<z.ZodString>;
  SHAREPOINT_BASE_URL: z.ZodOptional<z.ZodString>;
  SHAREPOINT_CERT_PATH: z.ZodOptional<z.ZodString>;
  SHAREPOINT_CLIENT_ID: z.ZodOptional<z.ZodString>;
  SHAREPOINT_TENANT_ID: z.ZodOptional<z.ZodString>;
  VERCEL_AI_GATEWAY_API_KEY: z.ZodOptional<z.ZodString>;
  VERCEL_AI_GATEWAY_BASE_URL: z.ZodOptional<z.ZodString>;
  VERTEX_API_HOST: z.ZodOptional<z.ZodString>;
  VERTEX_API_KEY: z.ZodOptional<z.ZodString>;
  VERTEX_API_VERSION: z.ZodOptional<z.ZodString>;
  VERTEX_PROJECT_ID: z.ZodOptional<z.ZodString>;
  VERTEX_PUBLISHER: z.ZodOptional<z.ZodString>;
  VERTEX_REGION: z.ZodOptional<z.ZodString>;
  VOYAGE_API_BASE_URL: z.ZodOptional<z.ZodString>;
  VOYAGE_API_KEY: z.ZodOptional<z.ZodString>;
  WATSONX_AI_APIKEY: z.ZodOptional<z.ZodString>;
  WATSONX_AI_AUTH_TYPE: z.ZodOptional<z.ZodString>;
  WATSONX_AI_BEARER_TOKEN: z.ZodOptional<z.ZodString>;
  WATSONX_AI_PROJECT_ID: z.ZodOptional<z.ZodString>;
  XAI_API_BASE_URL: z.ZodOptional<z.ZodString>;
  XAI_API_KEY: z.ZodOptional<z.ZodString>;
  AZURE_CONTENT_SAFETY_ENDPOINT: z.ZodOptional<z.ZodString>;
  AZURE_CONTENT_SAFETY_API_KEY: z.ZodOptional<z.ZodString>;
  AZURE_CONTENT_SAFETY_API_VERSION: z.ZodOptional<z.ZodString>;
  AWS_REGION: z.ZodOptional<z.ZodString>;
  AWS_DEFAULT_REGION: z.ZodOptional<z.ZodString>;
  AWS_SAGEMAKER_MAX_TOKENS: z.ZodOptional<z.ZodString>;
  AWS_SAGEMAKER_TEMPERATURE: z.ZodOptional<z.ZodString>;
  AWS_SAGEMAKER_TOP_P: z.ZodOptional<z.ZodString>;
  AWS_SAGEMAKER_MAX_RETRIES: z.ZodOptional<z.ZodString>;
  PROMPTFOO_EVAL_TIMEOUT_MS: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
type EnvOverrides = z.infer<typeof ProviderEnvOverridesSchema> & Record<string, string | undefined>;
//#endregion
//#region src/contracts/shared.d.ts
declare const CompletionTokenDetailsSchema: z.ZodObject<{
  reasoning: z.ZodOptional<z.ZodNumber>;
  acceptedPrediction: z.ZodOptional<z.ZodNumber>;
  rejectedPrediction: z.ZodOptional<z.ZodNumber>;
  cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
  cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
type CompletionTokenDetails = z.infer<typeof CompletionTokenDetailsSchema>;
/** Token usage statistics. The optional `assertions` mirrors the top-level fields for model-graded assertion accounting. */
declare const BaseTokenUsageSchema: z.ZodObject<{
  prompt: z.ZodOptional<z.ZodNumber>;
  completion: z.ZodOptional<z.ZodNumber>;
  cached: z.ZodOptional<z.ZodNumber>;
  total: z.ZodOptional<z.ZodNumber>;
  numRequests: z.ZodOptional<z.ZodNumber>;
  completionDetails: z.ZodOptional<z.ZodObject<{
    reasoning: z.ZodOptional<z.ZodNumber>;
    acceptedPrediction: z.ZodOptional<z.ZodNumber>;
    rejectedPrediction: z.ZodOptional<z.ZodNumber>;
    cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
    cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
  }, z.core.$strip>>;
  assertions: z.ZodOptional<z.ZodObject<{
    prompt: z.ZodOptional<z.ZodNumber>;
    completion: z.ZodOptional<z.ZodNumber>;
    cached: z.ZodOptional<z.ZodNumber>;
    total: z.ZodOptional<z.ZodNumber>;
    numRequests: z.ZodOptional<z.ZodNumber>;
    completionDetails: z.ZodOptional<z.ZodObject<{
      reasoning: z.ZodOptional<z.ZodNumber>;
      acceptedPrediction: z.ZodOptional<z.ZodNumber>;
      rejectedPrediction: z.ZodOptional<z.ZodNumber>;
      cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
      cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
  }, z.core.$strip>>;
}, z.core.$strip>;
type TokenUsage = z.infer<typeof BaseTokenUsageSchema>;
type NunjucksFilterMap = Record<string, (...args: any[]) => string>;
type VarValue = string | number | boolean | object | unknown[];
declare const InputTypeValues: readonly ["text", "pdf", "docx", "image"];
declare const InputTypeSchema: z.ZodEnum<{
  text: "text";
  pdf: "pdf";
  docx: "docx";
  image: "image";
}>;
type InputType = z.infer<typeof InputTypeSchema>;
declare const DocxInjectionPlacementValues: readonly ["body", "comment", "footnote", "header", "footer"];
declare const DocxInjectionPlacementSchema: z.ZodEnum<{
  comment: "comment";
  body: "body";
  footnote: "footnote";
  header: "header";
  footer: "footer";
}>;
type DocxInjectionPlacement = z.infer<typeof DocxInjectionPlacementSchema>;
declare const DocumentMediaInjectionPlacementValues: readonly ["body", "header", "footer"];
declare const DocumentMediaInjectionPlacementSchema: z.ZodEnum<{
  body: "body";
  header: "header";
  footer: "footer";
}>;
declare const InputConfigSchema: z.ZodObject<{
  benign: z.ZodOptional<z.ZodBoolean>;
  inputPurpose: z.ZodOptional<z.ZodString>;
  injectionPlacements: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
type InputConfig = z.infer<typeof InputConfigSchema>;
declare const InputDefinitionObjectSchema: z.ZodObject<{
  config: z.ZodOptional<z.ZodObject<{
    benign: z.ZodOptional<z.ZodBoolean>;
    inputPurpose: z.ZodOptional<z.ZodString>;
    injectionPlacements: z.ZodOptional<z.ZodArray<z.ZodString>>;
  }, z.core.$strip>>;
  description: z.ZodString;
  type: z.ZodOptional<z.ZodEnum<{
    text: "text";
    pdf: "pdf";
    docx: "docx";
    image: "image";
  }>>;
}, z.core.$strip>;
declare const InputDefinitionSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
  config: z.ZodOptional<z.ZodObject<{
    benign: z.ZodOptional<z.ZodBoolean>;
    inputPurpose: z.ZodOptional<z.ZodString>;
    injectionPlacements: z.ZodOptional<z.ZodArray<z.ZodString>>;
  }, z.core.$strip>>;
  description: z.ZodString;
  type: z.ZodOptional<z.ZodEnum<{
    text: "text";
    pdf: "pdf";
    docx: "docx";
    image: "image";
  }>>;
}, z.core.$strip>]>;
type InputDefinition = z.infer<typeof InputDefinitionSchema>;
type NormalizedInputDefinition = {
  config?: InputConfig;
  description: string;
  type: InputType;
};
declare function normalizeInputDefinition(input: InputDefinition): NormalizedInputDefinition;
declare function normalizeInputs(inputs?: Inputs): Record<string, NormalizedInputDefinition> | undefined;
declare function getInputDescription(input: InputDefinition): string;
declare function getInputType(input: InputDefinition): InputType;
declare function buildInputPromptDescription(input: InputDefinition): string;
declare const InputsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
  config: z.ZodOptional<z.ZodObject<{
    benign: z.ZodOptional<z.ZodBoolean>;
    inputPurpose: z.ZodOptional<z.ZodString>;
    injectionPlacements: z.ZodOptional<z.ZodArray<z.ZodString>>;
  }, z.core.$strip>>;
  description: z.ZodString;
  type: z.ZodOptional<z.ZodEnum<{
    text: "text";
    pdf: "pdf";
    docx: "docx";
    image: "image";
  }>>;
}, z.core.$strip>]>>;
type Inputs = z.infer<typeof InputsSchema>;
//#endregion
//#region src/contracts/prompts.d.ts
/** Minimum provider surface a prompt function may receive. */
interface MinimalApiProvider {
  id: () => string;
  callApi: (prompt: string, context?: any, options?: any) => Promise<any>;
  label?: string;
}
type PromptContent = string | any;
interface PromptConfig {
  prefix?: string;
  suffix?: string;
}
interface PromptFunctionContext {
  vars: Record<string, VarValue>;
  config: Record<string, any>;
  provider: {
    id: string;
    label?: string;
  };
}
/**
 * Result type for prompt functions.
 *
 * Prompt functions can return:
 * - A string (used directly as the prompt)
 * - An object/array (JSON stringified and used as the prompt)
 * - A PromptFunctionResult object with prompt and optional config
 */
interface PromptFunctionResult {
  prompt: PromptContent;
  config?: Record<string, any>;
}
interface PromptFunction {
  (context: {
    vars: Record<string, string | any>;
    provider?: MinimalApiProvider;
  }): Promise<PromptContent | PromptFunctionResult>;
}
interface Prompt {
  id?: string;
  raw: string;
  template?: string;
  display?: string;
  label: string;
  function?: PromptFunction;
  config?: any;
}
//#endregion
//#region src/contracts/providers.d.ts
/**
 * Chat message type for provider-reported prompts and other multi-turn interactions.
 */
interface ChatMessage {
  role: 'system' | 'user' | 'assistant' | 'tool' | 'function';
  content: string;
}
interface ModerationFlag {
  code: string;
  description: string;
  confidence: number;
}
interface ProviderModerationResponse {
  cached?: boolean;
  error?: string;
  flags?: ModerationFlag[];
}
interface GuardrailResponse {
  flaggedInput?: boolean;
  flaggedOutput?: boolean;
  flagged?: boolean;
  reason?: string;
}
interface ImageOutput {
  data?: string;
  blobRef?: BlobRef;
  mimeType?: string;
}
interface ProviderResponse {
  cached?: boolean;
  cost?: number;
  error?: string;
  /**
   * Indicates that a remote Promptfoo server already materialized multi-input vars
   * for this response. When true, callers must not re-materialize locally.
   */
  materializationHandled?: boolean;
  /**
   * Materialized per-input vars returned by a remote Promptfoo server.
   */
  materializedVars?: Record<string, string>;
  /**
   * Indicates that `output` contains base64-encoded binary data (often as JSON like OpenAI `b64_json`).
   * Used to enable blob externalization and avoid token bloat in downstream grading/agentic strategies.
   */
  isBase64?: boolean;
  /**
   * Optional format hint for `output` (e.g. `'json'` when `output` is a JSON string).
   */
  format?: string;
  logProbs?: number[];
  latencyMs?: number;
  metadata?: {
    redteamFinalPrompt?: string;
    http?: {
      status: number;
      statusText: string;
      headers?: Record<string, string>;
      requestHeaders?: Record<string, string>;
    };
    [key: string]: any;
  };
  /**
   * The actual prompt sent to the LLM. If set by a provider, this overrides
   * the rendered prompt for display and assertions.
   *
   * Useful for providers that dynamically generate or modify prompts
   * (e.g., GenAIScript, multi-turn strategies, agent frameworks).
   *
   * Can be a simple string or an array of chat messages.
   */
  prompt?: string | ChatMessage[];
  raw?: string | any;
  output?: string | any;
  /**
   * Input materialization metadata returned by a remote Promptfoo server.
   */
  inputMaterialization?: Record<string, unknown>;
  /**
   * Output after provider-level transform. Used by contextTransform to ensure
   * it operates on provider-normalized output, independent of test transforms.
   */
  providerTransformedOutput?: string | any;
  tokenUsage?: TokenUsage;
  isRefusal?: boolean;
  /**
   * Indicates the target intentionally ended the active conversation/session.
   * Multi-turn redteam strategies can use this to stop probing gracefully.
   */
  conversationEnded?: boolean;
  /**
   * Optional machine-readable reason explaining why the conversation ended.
   * Example: `thread_closed`.
   */
  conversationEndReason?: string;
  sessionId?: string;
  guardrails?: GuardrailResponse;
  finishReason?: string;
  audio?: {
    id?: string;
    expiresAt?: number;
    data?: string;
    blobRef?: BlobRef;
    transcript?: string;
    format?: string;
    sampleRate?: number;
    channels?: number;
    duration?: number;
  };
  video?: {
    id?: string;
    blobRef?: BlobRef;
    storageRef?: {
      key?: string;
    };
    url?: string;
    format?: string;
    size?: string;
    duration?: number;
    thumbnail?: string;
    spritesheet?: string;
    model?: string;
    aspectRatio?: string;
    resolution?: string;
  };
  images?: ImageOutput[];
}
interface ProviderEmbeddingResponse {
  cached?: boolean;
  cost?: number;
  error?: string;
  embedding?: number[];
  latencyMs?: number;
  tokenUsage?: Partial<TokenUsage>;
  metadata?: {
    transformed?: boolean;
    originalText?: string;
    [key: string]: any;
  };
}
interface ProviderSimilarityResponse {
  error?: string;
  similarity?: number;
  tokenUsage?: Partial<TokenUsage>;
}
interface ProviderClassificationResponse {
  error?: string;
  classification?: Record<string, number>;
}
interface FunctionToolCallValidator {
  validateFunctionToolCall(output: string | object, vars?: Record<string, VarValue>): void;
}
declare function hasFunctionToolCallValidator(provider: unknown): provider is FunctionToolCallValidator;
//#endregion
//#region src/contracts/transform.d.ts
/**
 * Metadata supplied to every transform invocation. Known fields are typed;
 * the open index signature preserves extensibility for plugins that attach
 * their own keys at runtime.
 */
interface TransformContext {
  vars?: Record<string, unknown>;
  prompt?: TransformPrompt | Record<string, unknown>;
  metadata?: Record<string, unknown>;
  uuid?: string;
  [key: string]: unknown;
}
/** Conventional shape for `TransformContext.prompt`. Callers may pass additional fields. */
interface TransformPrompt {
  label?: string;
  id?: string;
  raw?: string;
  display?: string;
}
/**
 * A function that transforms output or vars at various stages of the evaluation pipeline.
 * Function-valued transforms are only reachable via the Node.js package API; YAML configs
 * must use string expressions or `file://` references.
 *
 * @typeParam TIn  - Input type (output for output-transforms, vars object for var-transforms).
 * @typeParam TOut - Return type; may be wrapped in a Promise.
 */
type TransformFunction<TIn = unknown, TOut = unknown> = (output: TIn, context: TransformContext) => TOut | Promise<TOut>;
/** Runtime type guard for `TransformFunction` values. */
declare function isTransformFunction(value: unknown): value is TransformFunction;
//#endregion
export { DocxInjectionPlacementValues as A, InputsSchema as B, BaseTokenUsageSchema as C, DocumentMediaInjectionPlacementValues as D, DocumentMediaInjectionPlacementSchema as E, InputDefinitionSchema as F, buildInputPromptDescription as G, NunjucksFilterMap as H, InputType as I, normalizeInputDefinition as J, getInputDescription as K, InputTypeSchema as L, InputConfigSchema as M, InputDefinition as N, DocxInjectionPlacement as O, InputDefinitionObjectSchema as P, BlobRef as Q, InputTypeValues as R, PromptFunctionResult as S, CompletionTokenDetailsSchema as T, TokenUsage as U, NormalizedInputDefinition as V, VarValue as W, EnvOverrides as X, normalizeInputs as Y, ProviderEnvOverridesSchema as Z, Prompt as _, ChatMessage as a, PromptFunction as b, ImageOutput as c, ProviderEmbeddingResponse as d, ProviderModerationResponse as f, MinimalApiProvider as g, hasFunctionToolCallValidator as h, isTransformFunction as i, InputConfig as j, DocxInjectionPlacementSchema as k, ModerationFlag as l, ProviderSimilarityResponse as m, TransformFunction as n, FunctionToolCallValidator as o, ProviderResponse as p, getInputType as q, TransformPrompt as r, GuardrailResponse as s, TransformContext as t, ProviderClassificationResponse as u, PromptConfig as v, CompletionTokenDetails as w, PromptFunctionContext as x, PromptContent as y, Inputs as z };
//# sourceMappingURL=transform-C8OETOwh.d.ts.map