/**
 * Conversation Service
 * Handles AI-powered conversations with NPCs using configurable AI providers
 */
import { Player } from '../../models/Player.js';
import { Person } from '../../models/Person.js';
import { ConversationObj } from './ConversationObj.js';
export interface VerbosityLevel {
    level: 'low' | 'medium' | 'high';
    maxTokens: number;
}
/**
 * Check if player is rate limited
 */
export declare function checkOpenAIRateLimit(playerId: string): boolean;
/**
 * Get person description for AI context
 */
export declare function getPersonDescription(person: Person): string;
/**
 * Get OpenAI description for character
 */
export declare function getOpenAIDescription(character: Person): string;
/**
 * Detect appropriate verbosity level based on conversation context
 */
export declare function detectVerbosityLevel(conversation: ConversationObj, player: Player): VerbosityLevel;
/**
 * Get verbosity prompt hint for models without native verbosity parameter
 */
export declare function getVerbosityPromptHint(level: 'low' | 'medium' | 'high'): string;
/**
 * Context Manager for conversation compaction
 */
declare class ConversationContextManager {
    private maxRecentMessages;
    constructor(maxRecentMessages?: number);
    buildContext(conversation: ConversationObj, character: Person, player: Player): Promise<Array<{
        role: 'user' | 'assistant' | 'system';
        content: string;
    }>>;
    private getContextLimit;
    private formatMessages;
    private getOrCreateSummary;
    private summarizeMessages;
}
/**
 * Get AI response for conversation
 */
export declare function getOpenAIResponse(conversation: ConversationObj, character: Person, player: Player, customPrompt?: string, isRescueMessage?: boolean): Promise<void>;
/**
 * Send a character-initiated message to player
 */
export declare function sendCharacterMessage(player: Player, character: Person): Promise<void>;
export { ConversationContextManager };
//# sourceMappingURL=ConversationService.d.ts.map