import { type IContent } from '../../services/history/IContent.js';
import { type ITool } from '../ITool.js';
import { type ResponsesTool } from '../../tools/IToolFormatter.js';
export interface ResponsesRequestParams {
    messages?: IContent[];
    prompt?: string;
    tools?: ITool[] | ResponsesTool[];
    stream?: boolean;
    conversationId?: string;
    parentId?: string;
    tool_choice?: string | object;
    stateful?: boolean;
    model?: string;
    temperature?: number;
    max_tokens?: number;
    top_p?: number;
    frequency_penalty?: number;
    presence_penalty?: number;
    stop?: string | string[];
    n?: number;
    logprobs?: boolean;
    top_logprobs?: number;
    response_format?: object;
    seed?: number;
    logit_bias?: Record<string, number>;
    user?: string;
}
type ResponsesMessage = {
    role: 'assistant' | 'system' | 'developer' | 'user';
    content?: string;
    usage?: {
        prompt_tokens?: number;
        completion_tokens?: number;
        total_tokens?: number;
    };
} | FunctionCallOutput | FunctionCall;
type FunctionCallOutput = {
    type: 'function_call_output';
    call_id: string;
    output: string;
};
type FunctionCall = {
    type: 'function_call';
    call_id: string;
    name: string;
    arguments: string;
};
export interface ResponsesRequest {
    model: string;
    input?: ResponsesMessage[];
    prompt?: string;
    tools?: ResponsesTool[];
    stream?: boolean;
    previous_response_id?: string;
    store?: boolean;
    tool_choice?: string | object;
    stateful?: boolean;
    temperature?: number;
    max_tokens?: number;
    top_p?: number;
    frequency_penalty?: number;
    presence_penalty?: number;
    stop?: string | string[];
    n?: number;
    logprobs?: boolean;
    top_logprobs?: number;
    response_format?: object;
    seed?: number;
    logit_bias?: Record<string, number>;
    user?: string;
}
export declare function buildResponsesRequest(params: ResponsesRequestParams): ResponsesRequest;
export {};
