/**
 * Conversation Object Class
 * Represents a conversation thread between player and NPC
 */
import { ConversationMessage, Sentiment } from './ConversationMessage.js';
export type ConversationType = 'activity' | 'checkIn' | 'askAboutDay' | 'flatter' | 'studySession' | 'chat' | 'deepConversation' | 'gossipSession' | 'ventingSession' | 'askAdvice' | 'reminisce' | 'apologizeConvo' | 'shareDream' | 'askFavor' | 'debateOpinion' | 'shareExcitement';
export interface ConversationObjOptions {
    id?: string;
    character: string;
    cType?: ConversationType;
}
export declare class ConversationObj {
    id: string;
    type: 'conversationEvent';
    cType: ConversationType | null;
    character: string;
    conversation: ConversationMessage[];
    question: number;
    unread: boolean;
    summary?: string;
    summary_message_count?: number;
    constructor(options: ConversationObjOptions);
    addMessage(message: string, sender?: string, options?: {
        data?: Record<string, unknown>;
        sentiment?: Sentiment;
        date?: string;
        time?: string;
    }): void;
    getConversation(): ConversationMessage[];
    getLastMessage(): ConversationMessage | undefined;
    addAnswerOption(option: string): void;
    setAnswerOptions(options: string[]): void;
    getAnswerOptions(): string[] | undefined;
    createAnswerOptions(_prompt: string): void;
    markAsRead(): void;
    toJSON(): Record<string, unknown>;
    /**
     * Get the most recent messages for context
     */
    getRecentMessages(count: number): ConversationMessage[];
    /**
     * Get message count
     */
    getMessageCount(): number;
    /**
     * Create a ConversationObj from plain data (e.g., loaded from database)
     */
    static fromData(data: Record<string, unknown>, character?: {
        id: string;
    }): ConversationObj;
}
//# sourceMappingURL=ConversationObj.d.ts.map