/**
 * OTel gen_ai.* semantic convention constants for Vauban agents.
 *
 * Spec: https://opentelemetry.io/docs/specs/semconv/gen-ai/
 *
 * All standard gen_ai.* attributes follow the OTel semantic conventions.
 * Custom Vauban attributes (gen_ai.agent.id, gen_ai.delegation.parent_run_id,
 * gen_ai.cost.usd) are prefixed gen_ai.* to stay in the same namespace.
 */
import type { Span } from "@opentelemetry/api";
/** AI system identifier, e.g. "anthropic", "deepseek", "groq". */
export declare const GEN_AI_SYSTEM: "gen_ai.system";
/** Model name as requested, e.g. "claude-sonnet-4-6". */
export declare const GEN_AI_REQUEST_MODEL: "gen_ai.request.model";
/** Maximum token limit requested. */
export declare const GEN_AI_REQUEST_MAX_TOKENS: "gen_ai.request.max_tokens";
/** Actual model used in the response (may differ from request). */
export declare const GEN_AI_RESPONSE_MODEL: "gen_ai.response.model";
/** Number of input/prompt tokens consumed. */
export declare const GEN_AI_USAGE_INPUT_TOKENS: "gen_ai.usage.input_tokens";
/** Number of output/completion tokens generated. */
export declare const GEN_AI_USAGE_OUTPUT_TOKENS: "gen_ai.usage.output_tokens";
/** Total tokens (input + output). */
export declare const GEN_AI_USAGE_TOTAL_TOKENS: "gen_ai.usage.total_tokens";
/** High-level operation: "chat" | "completion" | "embedding". */
export declare const GEN_AI_OPERATION_NAME: "gen_ai.operation.name";
/** Agent / runner identifier (Vauban extension). */
export declare const GEN_AI_AGENT_ID: "gen_ai.agent.id";
/**
 * Parent run ID for delegation chain tracking (Sprint B).
 * Must match `withDelegationAttribute` in trace-context.ts.
 */
export declare const GEN_AI_DELEGATION_PARENT_RUN_ID: "gen_ai.delegation.parent_run_id";
/**
 * Computed cost in USD (Vauban extension).
 * Set by OutcomeTracker when available; stub value 0 until wired.
 */
export declare const GEN_AI_COST_USD: "gen_ai.cost.usd";
export interface GenAiAttributes {
    /** @see GEN_AI_SYSTEM */
    "gen_ai.system"?: string;
    /** @see GEN_AI_REQUEST_MODEL */
    "gen_ai.request.model"?: string;
    /** @see GEN_AI_REQUEST_MAX_TOKENS */
    "gen_ai.request.max_tokens"?: number;
    /** @see GEN_AI_RESPONSE_MODEL */
    "gen_ai.response.model"?: string;
    /** @see GEN_AI_USAGE_INPUT_TOKENS */
    "gen_ai.usage.input_tokens"?: number;
    /** @see GEN_AI_USAGE_OUTPUT_TOKENS */
    "gen_ai.usage.output_tokens"?: number;
    /** @see GEN_AI_USAGE_TOTAL_TOKENS */
    "gen_ai.usage.total_tokens"?: number;
    /** @see GEN_AI_OPERATION_NAME */
    "gen_ai.operation.name"?: string;
    /** @see GEN_AI_AGENT_ID */
    "gen_ai.agent.id"?: string;
    /** @see GEN_AI_DELEGATION_PARENT_RUN_ID */
    "gen_ai.delegation.parent_run_id"?: string;
    /** @see GEN_AI_COST_USD */
    "gen_ai.cost.usd"?: number;
}
/**
 * Sets all provided gen_ai.* attributes on a recording span.
 * Undefined values are skipped (not set).
 *
 * @param span  - The OTel Span to annotate (must be recording).
 * @param attrs - Partial bag of gen_ai.* attributes.
 */
export declare function setGenAiAttributes(span: Span, attrs: Partial<GenAiAttributes>): void;
//# sourceMappingURL=attributes.d.ts.map