/**
 * Interfaces for LLM integration
 */
export interface LlmConfig {
    apiKey: string;
    model: string;
    temperature?: number;
    maxTokens?: number;
    topP?: number;
    frequencyPenalty?: number;
    presencePenalty?: number;
}
export interface ActionRequest {
    playerInput: string;
    currentRoom: string;
    visibleObjects: string[];
    visibleCharacters: string[];
    possibleActions: string[];
    inventory: string[];
    gameContext: string;
}
export interface ActionResponse {
    action: string;
    object?: string;
    target?: string;
    parameters?: Record<string, string>;
    confidence: number;
}
export interface NarrativeRequest {
    action: string;
    result: string;
    roomDescription: string;
    visibleObjects: string[];
    visibleCharacters: string[];
    previousContext?: string;
    tone?: string;
}
export interface NarrativeResponse {
    text: string;
    suggestions?: string[];
}
export interface LlmProvider {
    initialize(config: LlmConfig): Promise<void>;
    translateAction(request: ActionRequest): Promise<ActionResponse>;
    generateNarrative(request: NarrativeRequest): Promise<NarrativeResponse>;
}
