/**
 * AI Response System for BaoLife Conversations
 * Ported from Python conversationEvents.py
 *
 * Handles:
 * - Multiple AI provider support (OpenAI, Together AI, Mistral, OpenRouter)
 * - Verbosity detection for natural response lengths
 * - Fallback responses when API unavailable
 * - Conversation context management
 * - Typing indicators
 */
import { ConversationObj } from './types.js';
import { Player, Person } from '../../models/index.js';
/**
 * Verbosity levels for situation-driven response lengths
 */
export type VerbosityLevel = 'quick' | 'casual' | 'normal' | 'emotional' | 'major';
/**
 * Verbosity level configuration
 */
export interface VerbosityConfig {
    level: VerbosityLevel;
    maxTokens: number;
}
/**
 * Detect verbosity level based on conversation context and emotional weight.
 *
 * 5-tier system:
 *  - quick (100 tokens): one-word reactions, emojis, "lol"
 *  - casual (300 tokens): simple chat, greetings, small talk
 *  - normal (600 tokens): standard engaged conversation
 *  - emotional (1200 tokens): deep questions, vulnerability, feelings
 *  - major (2000 tokens): breakups, confessions, life-changing moments
 */
export declare function detectVerbosityLevel(conversation: ConversationObj, _character: Person, player: Player): VerbosityConfig;
/**
 * Get verbosity prompt hint for models without native verbosity parameter
 */
export declare function getVerbosityPromptHint(verbosityLevel: string): string;
/**
 * Generate time-of-day behavioral directive for the AI prompt.
 * Adjusts NPC tone/behavior based on what hour it is in-game and
 * how close the relationship is.
 */
export declare function getTimeAwarenessDirective(hour: number, affinity: number, relationships: string[]): string;
/**
 * Fallback responses when API is unavailable
 */
export declare function getFallbackResponse(conversation: ConversationObj, character: Person, player: Player): Promise<void>;
/**
 * Get OpenAI response for conversation
 */
export declare function getOpenAIResponse(conversation: ConversationObj, character: Person, player: Player, customPrompt?: string, rescueMessage?: boolean): Promise<void>;
/**
 * Send a character-initiated message
 */
export declare function sendCharacterMessage(player: Player, character: Person): Promise<void>;
//# sourceMappingURL=ai_response.d.ts.map