import type { BaseChatMessageItemModel, ChatMessageOption, IChatEvent, IChatMessageItem } from '@difizen/magent-chat';
import { DefaultChatMessageModel, ChatMessageItemManager } from '@difizen/magent-chat';
import { Fetcher } from '@difizen/magent-core';
import { Deferred } from '@difizen/mana-app';
import { AgentManager } from '../agent/agent-manager.js';
import type { AgentModel } from '../agent/agent-model.js';
import type { ChainItem, AUMessageOption, AUChatMessageItemOption } from './protocol.js';
import type { AUChatMessageOption } from './protocol.js';
export declare class AUChatMessageModel extends DefaultChatMessageModel {
    protected fetcher: Fetcher;
    protected agentManager: AgentManager;
    option: AUChatMessageOption;
    agentId: string;
    sessionId: string;
    agent?: AgentModel;
    messages: BaseChatMessageItemModel[];
    invocationChain?: ChainItem[];
    agentReady: Promise<AgentModel>;
    protected agentDeferred: Deferred<AgentModel>;
    constructor(option: AUChatMessageOption, itemManager: ChatMessageItemManager, fetcher: Fetcher, agentManager: AgentManager);
    protected initMessageItems: <T extends ChatMessageOption>(option: T) => void;
    protected getAgent: (id: string) => Promise<void>;
    protected doUpdateMessages: (option: AUMessageOption) => Promise<void>;
    updateMeta(option: ChatMessageOption): void;
    handleChatEvent(event: IChatEvent, item: BaseChatMessageItemModel): void;
    toChatMessageItemOption(item: IChatMessageItem): AUChatMessageItemOption;
    protected send<T extends ChatMessageOption>(option: T): Promise<void>;
}
//# sourceMappingURL=chat-message-model.d.ts.map