import { ChatCompletionMessageParam } from 'openai/resources/chat';
export type XAliThoughtType = {
    thought: string;
    action_type: 'API' | 'agentRag' | 'reasoning' | string;
    action_name: string;
    action: string;
    action_input_stream?: string;
    action_input?: string;
    observation?: string;
    reasoningContent?: string;
};
export type XAliUsageModelType = {
    model_id: string;
    input_tokens: number;
    output_tokens: number;
};
/**
 * @param title 模型引用的文本切片标题
 * @param doc_name 模型引用的文档名
 */
export type XAliDocReference = {
    index_id: string;
    title: string;
    doc_id: string;
    doc_name: string;
    text: string;
    images?: string[];
    page_number?: number[];
};
export type XAliOutputType = {
    text: string;
    finish_reason: null | 'stop' | string;
    session_id: string;
    thoughts?: Array<XAliThoughtType>;
    usage?: {
        models: Array<XAliUsageModelType>;
    };
};
export type XAliResponseType = {
    status_code: number;
    request_id: string;
    code?: string;
    message?: string;
    output?: XAliOutputType;
    usage?: {
        models?: Array<XAliUsageModelType>;
    };
};
export type XAliResponseChunkType = {
    request_id: string;
    output: XAliOutputType;
    usage?: {
        models?: Array<XAliUsageModelType>;
    };
};
export type XAliappRagOptions = {
    pipeline_ids: Array<string>;
    file_ids?: string[];
    metadata_filter?: Record<string, any>;
    tags?: string[];
    structured_filter?: Record<string, any>;
};
export type XAliappRequestInput = {
    prompt?: string;
    messages?: Array<ChatCompletionMessageParam>;
    session_id?: string;
    memory_id?: string;
    user_id?: string;
    biz_params?: Record<string, any>;
    image_list?: string[];
    session_file_ids?: string[];
};
export type XAliappRequestParams = {
    has_thoughts?: boolean;
    incremental_output?: boolean;
    flow_stream_mode?: {
        full_thoughts?: 'thoughts' | string;
        agent_format?: string;
    };
    rag_options?: XAliappRagOptions;
};
/**
 * @public the aliapp support http protocal request
 *
 */
export type XAliappRequestBody = {
    input: XAliappRequestInput;
    parameters?: XAliappRequestParams;
    debug?: Record<string, any>;
};
