import { a as AdapterHooks, b as AgentRunner, aX as StreamingCallbackRunner } from './types-CRmwFnVk.js';
import '@directive-run/core';

/**
 * @directive-run/ai/anthropic
 *
 * Anthropic adapter for Directive AI. Provides runners for the
 * Anthropic Messages API, including streaming support.
 *
 * @example
 * ```typescript
 * import { createAnthropicRunner, createAnthropicStreamingRunner } from '@directive-run/ai/anthropic';
 *
 * const runner = createAnthropicRunner({ apiKey: process.env.ANTHROPIC_API_KEY! });
 * ```
 */

/**
 * Anthropic model pricing (USD per million tokens).
 *
 * Use with `estimateCost()` for per-call cost tracking:
 * ```typescript
 * import { estimateCost } from '@directive-run/ai';
 * import { ANTHROPIC_PRICING } from '@directive-run/ai/anthropic';
 *
 * const cost =
 *   estimateCost(result.tokenUsage!.inputTokens, ANTHROPIC_PRICING["claude-sonnet-4-5-20250929"].input) +
 *   estimateCost(result.tokenUsage!.outputTokens, ANTHROPIC_PRICING["claude-sonnet-4-5-20250929"].output);
 * ```
 *
 * **Note:** Pricing changes over time. These values are provided as a convenience
 * and may not reflect the latest rates. Always verify at https://anthropic.com/pricing
 */
declare const ANTHROPIC_PRICING: Record<string, {
    input: number;
    output: number;
}>;
/** Options for createAnthropicRunner */
interface AnthropicRunnerOptions {
    apiKey: string;
    model?: string;
    /** @default 4096 */
    maxTokens?: number;
    baseURL?: string;
    fetch?: typeof globalThis.fetch;
    /** @default undefined */
    timeoutMs?: number;
    /** Lifecycle hooks for tracing, logging, and metrics */
    hooks?: AdapterHooks;
    /** Sampling temperature (0–1). Higher = more random. */
    temperature?: number;
    /** Nucleus sampling: top-P probability mass (0–1). */
    topP?: number;
    /** Custom stop sequences. The model will stop generating when it encounters one. */
    stopSequences?: string[];
}
/**
 * Create an AgentRunner for the Anthropic Messages API.
 *
 * Returns `tokenUsage` with input/output breakdown for cost tracking.
 *
 * @example
 * ```typescript
 * const runner = createAnthropicRunner({
 *   apiKey: process.env.ANTHROPIC_API_KEY!,
 *   hooks: {
 *     onAfterCall: ({ durationMs, tokenUsage }) => {
 *       console.log(`${durationMs}ms – ${tokenUsage.inputTokens}in/${tokenUsage.outputTokens}out`);
 *     },
 *   },
 * });
 * const orchestrator = createAgentOrchestrator({ runner });
 * const result = await orchestrator.run(agent, input);
 * ```
 */
declare function createAnthropicRunner(options: AnthropicRunnerOptions): AgentRunner;
/** Options for createAnthropicStreamingRunner */
interface AnthropicStreamingRunnerOptions {
    apiKey: string;
    model?: string;
    /** @default 4096 */
    maxTokens?: number;
    baseURL?: string;
    fetch?: typeof globalThis.fetch;
    /** Lifecycle hooks for tracing, logging, and metrics */
    hooks?: AdapterHooks;
    /** Sampling temperature (0–1). Higher = more random. */
    temperature?: number;
    /** Nucleus sampling: top-P probability mass (0–1). */
    topP?: number;
    /** Custom stop sequences. The model will stop generating when it encounters one. */
    stopSequences?: string[];
}
/**
 * Create a StreamingCallbackRunner for the Anthropic Messages API with
 * server-sent events. Can be used standalone or paired with `createAnthropicRunner`.
 *
 * Returns `tokenUsage` with input/output breakdown for cost tracking.
 *
 * @example
 * ```typescript
 * const streamingRunner = createAnthropicStreamingRunner({
 *   apiKey: process.env.ANTHROPIC_API_KEY!,
 * });
 * const streamRunner = createStreamingRunner(streamingRunner);
 * const { stream, result } = streamRunner(agent, input);
 * ```
 */
declare function createAnthropicStreamingRunner(options: AnthropicStreamingRunnerOptions): StreamingCallbackRunner;

export { ANTHROPIC_PRICING, type AnthropicRunnerOptions, type AnthropicStreamingRunnerOptions, createAnthropicRunner, createAnthropicStreamingRunner };
