import type { AIUsageInfo, DeepThinkOption, StreamingCallback } from '../../types';
import type { IModelConfig } from '@midscene/shared/env';
import type { ChatCompletionMessageParam } from 'openai/resources/index';
type CodexReasoningEffort = 'low' | 'medium' | 'high' | 'xhigh';
type CodexTextInput = {
    type: 'text';
    text: string;
    text_elements: any[];
};
type CodexImageInput = {
    type: 'image';
    url: string;
    detail?: string;
};
type CodexLocalImageInput = {
    type: 'localImage';
    path: string;
    detail?: string;
};
type CodexTurnInput = CodexTextInput | CodexImageInput | CodexLocalImageInput;
type CodexTurnResult = {
    content: string;
    reasoning_content?: string;
    usage?: AIUsageInfo;
    isStreamed: boolean;
};
export declare const isCodexAppServerProvider: (baseURL?: string) => boolean;
export declare const normalizeCodexLocalImagePath: (imageUrl: string, platform?: NodeJS.Platform) => string;
export declare const resolveCodexReasoningEffort: ({ deepThink, modelConfig, }: {
    deepThink?: DeepThinkOption;
    modelConfig: IModelConfig;
}) => CodexReasoningEffort | undefined;
export declare const buildCodexTurnPayloadFromMessages: (messages: ChatCompletionMessageParam[], options?: {
    imageDetailOverride?: string;
}) => {
    developerInstructions?: string;
    input: CodexTurnInput[];
};
export declare function callAIWithCodexAppServer(messages: ChatCompletionMessageParam[], modelConfig: IModelConfig, options?: {
    stream?: boolean;
    onChunk?: StreamingCallback;
    deepThink?: DeepThinkOption;
    abortSignal?: AbortSignal;
}): Promise<CodexTurnResult>;
export declare function __shutdownCodexAppServerForTests(): Promise<void>;
export {};
