///
///
import type { ChatRequestMessage, ChatResponseMessage } from '@azure/openai';
import type { ChatCompletionsFunctionToolCall } from '@azure/openai/types/openai';
import EventEmitter from 'events';
import { Readable } from 'stream';
import { Assistant } from '../assistant';
import type { ChatMessage } from '../message';
export declare class Thread extends EventEmitter {
readonly id: string;
private _stream;
private readonly _messages;
private readonly converter;
constructor(id: string, messages?: ChatMessage[]);
get stream(): Readable | null;
get messages(): ChatMessage[];
addMessage(message: ChatMessage): void;
run(assistant: Assistant): Promise;
private doRun;
private dispatchRequiredAction;
private handleSubmittedToolOutputs;
private doAddMessage;
private emitImmediate;
/**
* Errors come in all shapes and sizes depending on whether they are raised by the API (authn & authz errors),
* the model (invalid tool definitions, maximum content length exceeded, etc.) or by the Azure content filtering
*
* We try here to handle most of them and return a consistent error type
*/
private buildError;
}
export declare class RequiredAction extends EventEmitter {
readonly toolCalls: ChatCompletionsFunctionToolCall[];
private readonly callback;
constructor(toolCalls: ChatCompletionsFunctionToolCall[], callback: (toolOutputs: ToolOutput[]) => Promise);
submitToolOutputs(toolOutputs: ToolOutput[]): Promise;
}
export interface ToolOutput {
callId: string;
value: unknown;
metadata?: unknown;
}
export declare function isChatResponseMessage(m: ChatRequestMessage | ChatResponseMessage): m is ChatResponseMessage;
export declare function isChatRequestMessage(m: ChatRequestMessage | ChatResponseMessage): m is ChatRequestMessage;
//# sourceMappingURL=thread.d.ts.map