import type { ProposedToolCall } from './ProposedToolCall';
export type AssistantMessage = {
    type: 'assistant';
    text: string;
    promptTokensUsed: number;
    completionTokensUsed: number;
};
export type StructuredOutputMessage<T = Record<string, unknown>> = {
    type: 'structured_output';
    output: T;
    promptTokensUsed: number;
    completionTokensUsed: number;
};
export type ProposedToolCallsMessage = {
    type: 'proposed_tool_calls';
    proposedToolCalls: ProposedToolCall[];
    promptTokensUsed: number;
    completionTokensUsed: number;
};
export type SystemMessage = {
    type: 'system';
    text: string;
};
export type ToolCallResultMessage = {
    type: 'tool_call_result';
    toolName: string;
    data: string;
    toolCallId: string;
};
export type ImageItem = {
    type: 'png' | 'jpeg';
    bytes: Uint8Array;
};
export type TextItem = {
    type: 'text';
    text: string;
};
export type UserMessageItem = ImageItem | TextItem;
export type UserMessage = {
    type: 'user';
    items: UserMessageItem[];
};
export type GptMessage = AssistantMessage | StructuredOutputMessage<any> | ProposedToolCallsMessage | SystemMessage | ToolCallResultMessage | UserMessage;
//# sourceMappingURL=GptMessage.d.ts.map