import type OpenAI from "openai"; import { type Reranker, type RetrievalModel, type RetrieverHit } from "@use-crux/core/retrieval"; import { OpenAIChatStream } from "./stream"; import type { OpenAIExtra } from "./types"; /** Configuration for `openai.retrievalModel()`. */ export interface OpenAIRetrievalModelConfig { model: string; } /** Configuration for `openai.reranker()`. */ export interface OpenAIRerankerConfig extends OpenAIRetrievalModelConfig { name?: string; topN?: number; document?: (hit: RetrieverHit) => string; } /** * Public OpenAI provider runtime. * * OpenAI is a single-turn provider: the SDK exposes one chat call or stream * per turn, while Crux owns prompt resolution, tool loops, validation retry, * safety, observability, and memory capture. */ export declare const openaiProviderRuntime: import("@use-crux/core/adapter").DefinedSingleTurnProviderRuntime, { retrievalModel(config: OpenAIRetrievalModelConfig): RetrievalModel; reranker(config: OpenAIRerankerConfig): Reranker; }, Readonly<{ generateImage: import("@use-crux/core/adapter").BoundCompletedOperation & (Readonly<{ size?: `${number}x${number}`; aspectRatio?: never; }> | Readonly<{ size?: never; aspectRatio?: `${number}:${number}`; }>)) & (({ readonly input?: undefined; } | { readonly input?: never; }) & { readonly model: string; readonly prompt: import("@use-crux/core").ImagePrompt; readonly extra?: import("./image-generation").OpenAIImageExtra | undefined; }), Omit, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ transcribe: import("@use-crux/core/adapter").BoundCompletedOperation, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ generateSpeech: import("@use-crux/core/adapter").BoundCompletedOperation | undefined; guardrails?: readonly import("@use-crux/core").Guardrail[]; safety?: import("@use-crux/core/safety").SafetyTuneOptions; extra?: import("./speech").OpenAISpeechExtra | undefined; }>, Omit, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ streamImage: import("@use-crux/core/adapter").BoundStreamingOperation, never>, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ streamSpeech: import("@use-crux/core/adapter").BoundStreamingOperation | undefined; guardrails?: readonly import("@use-crux/core").Guardrail[]; safety?: import("@use-crux/core/safety").SafetyTuneOptions; extra?: import("./speech").OpenAISpeechExtra | undefined; }>, import("@use-crux/core").SpeechStreamEvent, Omit, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }>>; /** Create an OpenAI adapter bound to a client instance. */ export declare const createOpenAI: (client: OpenAI, deps?: Record | undefined) => import("@use-crux/core/adapter/provider-runtime/runtime-types").SingleTurnProviderRuntime & Readonly<{ generateImage: import("@use-crux/core/adapter").BoundCompletedOperation; guardrails?: readonly import("@use-crux/core").Guardrail[]; safety?: import("@use-crux/core/safety").SafetyTuneOptions; }> & (Readonly<{ size?: `${number}x${number}`; aspectRatio?: never; }> | Readonly<{ size?: never; aspectRatio?: `${number}:${number}`; }>)) & (({ readonly input?: undefined; } | { readonly input?: never; }) & { readonly model: string; readonly prompt: import("@use-crux/core").ImagePrompt; readonly extra?: import("./image-generation").OpenAIImageExtra | undefined; }), Omit, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ transcribe: import("@use-crux/core/adapter").BoundCompletedOperation, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ generateSpeech: import("@use-crux/core/adapter").BoundCompletedOperation | undefined; guardrails?: readonly import("@use-crux/core").Guardrail[]; safety?: import("@use-crux/core/safety").SafetyTuneOptions; extra?: import("./speech").OpenAISpeechExtra | undefined; }>, Omit, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ streamImage: import("@use-crux/core/adapter").BoundStreamingOperation, never>, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & Readonly<{ streamSpeech: import("@use-crux/core/adapter").BoundStreamingOperation | undefined; guardrails?: readonly import("@use-crux/core").Guardrail[]; safety?: import("@use-crux/core/safety").SafetyTuneOptions; extra?: import("./speech").OpenAISpeechExtra | undefined; }>, import("@use-crux/core").SpeechStreamEvent, Omit, "_meta"> & { readonly _meta: Readonly, keyof import("@use-crux/core").OperationResultMeta> & import("@use-crux/core").OperationResultMeta>; }>; }> & { retrievalModel(config: OpenAIRetrievalModelConfig): RetrievalModel; reranker(config: OpenAIRerankerConfig): Reranker; }; /** Lightweight helper factory generated from the OpenAI provider runtime. */ export declare const openAIHelpers: import("@use-crux/core/adapter").NativeChatHelpers;