import type OpenAI from 'openai';
import type { ChatModelRequirements } from '../../../types/ModelRequirements';
import type { Prompt } from '../../../types/Prompt';
import type { string_model_name } from '../../../types/string_model_name';
import type { TODO_any } from '../../../utils/organization/TODO_any';
/**
 * Builds cloned prompt payloads, OpenAI messages, and raw chat requests.
 *
 * @private helper of `callOpenAiCompatibleChatModel`
 */
export declare class OpenAiCompatibleChatPromptBuilder {
    /**
     * Creates a deep copy of the prompt while keeping attached files intact when structured clone is not available.
     */
    clonePromptPreservingFiles(prompt: Prompt): Prompt;
    /**
     * Resolves OpenAI chat creation settings from model requirements and prompt format.
     */
    createModelSettings(options: {
        readonly currentModelRequirements: ChatModelRequirements;
        readonly format?: Prompt['format'];
        readonly modelName: string_model_name;
    }): OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming;
    /**
     * Creates the full OpenAI chat message list, including system, thread, and user content.
     */
    createMessages(options: {
        readonly prompt: Prompt;
        readonly currentModelRequirements: ChatModelRequirements;
        readonly rawPromptContent: string;
    }): Promise<Array<OpenAI.Chat.Completions.ChatCompletionMessageParam>>;
    /**
     * Creates one raw OpenAI chat request from the current conversation state.
     */
    createRawRequest(options: {
        readonly modelSettings: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming;
        readonly messages: Array<OpenAI.Chat.Completions.ChatCompletionMessageParam>;
        readonly tools: ReadonlyArray<TODO_any> | undefined;
        readonly userId: string | number | undefined;
    }): OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming;
    /**
     * Provides access to the structured clone implementation when available.
     */
    private getStructuredCloneFunction;
    /**
     * Checks whether the prompt is a chat prompt that carries file attachments.
     */
    private hasChatPromptFiles;
    /**
     * Converts the existing prompt thread into OpenAI chat messages.
     */
    private createThreadMessages;
    /**
     * Builds the final user message, including inline image attachments when present.
     */
    private createPromptUserMessage;
}
