import { AsyncModel } from '@difizen/magent-core';
import type { Event, Disposable } from '@difizen/mana-app';
import { DisposableCollection, Emitter } from '@difizen/mana-app';
import type { Dayjs } from 'dayjs';
import { ChatMessageManager } from './chat-message-manager.js';
import type { ChatMessageOption } from './chat-message-model.js';
import { ChatService } from './chat-service.js';
import type { BaseChatMessageItemModel, BaseChatMessageModel, IChatMessage } from './protocol.js';
import { ConversationOption } from './protocol.js';
export declare class DefaultConversationModel extends AsyncModel<DefaultConversationModel, ConversationOption> implements Disposable {
    protected messageManager: ChatMessageManager;
    protected chatService: ChatService;
    protected option: ConversationOption;
    protected toDispose: DisposableCollection;
    disposed: boolean;
    protected onDisposeEmitter: Emitter<void>;
    get onDispose(): Event<void>;
    protected onMessageEmitter: Emitter<import("./chat-message-item-model.js").DefaultChatMessageItemModel>;
    get onMessage(): Event<BaseChatMessageItemModel>;
    id?: string;
    created?: Dayjs;
    modified?: Dayjs;
    messages: BaseChatMessageModel[];
    protected _title: string;
    get title(): string;
    set title(v: string);
    get previewTitle(): string;
    constructor(option: ConversationOption);
    shouldInitFromMeta(option: ConversationOption): boolean;
    protected fromMeta(option?: ConversationOption): void;
    fetchInfo(option: ConversationOption): Promise<void>;
    dispose: () => void;
    protected toChatMessageOption(msg: IChatMessage): ChatMessageOption;
    protected disposeMessage: (msg: BaseChatMessageModel) => void;
    sendMessage: (msg: IChatMessage) => void;
}
//# sourceMappingURL=conversation-model.d.ts.map