import type OpenAI from "openai"; import type { TranscriptionCreateParamsNonStreaming, TranscriptionCreateResponse } from "openai/resources/audio/transcriptions"; import type { TranslationCreateParams, TranslationCreateResponse } from "openai/resources/audio/translations"; import { type DataAsset, type Transcribe, type TranscribeOptions } from "@use-crux/core"; type NativeControls = Omit; /** OpenAI translation controls supported by the installed translations endpoint. */ export type OpenAITranslationExtra = Readonly>; type OpenAITranscriptionNativeExtra = NativeControls & { readonly response_format?: "json" | "verbose_json" | "diarized_json"; }; /** Endpoint-isolated, mutually exclusive OpenAI audio controls. */ export type OpenAITranscriptionExtra = Readonly<{ transcription?: OpenAITranscriptionNativeExtra; translation?: never; }> | Readonly<{ transcription?: never; translation?: OpenAITranslationExtra; }>; /** Safe OpenAI transcription metadata projected from the native response. */ export interface OpenAITranscriptionMetadata { readonly usage?: TranscriptionCreateResponse["usage"]; } type OpenAITranscriptionRaw = TranscriptionCreateResponse | TranslationCreateResponse; /** Flat transcription operation attached to a bound OpenAI adapter. */ export type OpenAITranscribe = Transcribe; export type OpenAITranscriptionInput = TranscribeOptions; /** Build one stateless OpenAI audio transcription operation. */ export declare function createOpenAITranscribe(client: OpenAI): OpenAITranscribe; /** Define OpenAI transcription mechanics for first-class provider-runtime compilation. */ export declare function createOpenAITranscriptionOperation(client: OpenAI): import("@use-crux/core/adapter").CompletedOperationDefinition; timestamps?: "none" | "segment" | "word" | "segment-and-word"; diarization?: boolean; prompt?: string; guardrails?: readonly import("@use-crux/core").Guardrail[]; constraints?: readonly import("@use-crux/core").Constraint>[]; safety?: import("@use-crux/core/safety").SafetyTuneOptions; abortSignal?: AbortSignal; timeout?: import("@use-crux/core").OperationTimeout; extra?: OpenAITranscriptionExtra | undefined; }; audio: DataAsset | import("@use-crux/core").UrlAsset; }, OpenAITranscriptionRaw, import("@use-crux/core/adapter").TranscriptionPayload, { kind: string; segments: number; words: number; }>; export {};