import { GameScript, GameState, GameEventHandler, Scene, DialogueEntry, Choice, Plugin } from '../types/index.js';
import { AudioManager } from './AudioManager.js';
import { SaveManager } from './SaveManager.js';
import { UIRenderer } from './UIRenderer.js';
import { LanguageManager } from './LanguageManager.js';
import { PluginManager } from './PluginManager.js';
export declare class Game {
    private script;
    private state;
    private container;
    private audioManager;
    private saveManager;
    private uiRenderer;
    private languageManager;
    private pluginManager;
    private eventHandlers;
    private currentSceneDialogueHistory;
    private globalDialogueHistory;
    private isGameStarted;
    constructor(script: GameScript);
    mount(selector: string): void;
    private initialize;
    startScene(sceneId: string, fadeOptions?: {
        backgroundFade?: boolean;
        backgroundAnimation?: any;
    }): Promise<void>;
    private showDialogue;
    next(): Promise<void>;
    makeChoice(choice: Choice): Promise<void>;
    private handleAction;
    saveGame(slot?: number): Promise<void>;
    loadGame(slot?: number): Promise<void>;
    showMainMenu(): Promise<void>;
    startNewGame(): Promise<void>;
    continueGame(): Promise<void>;
    on(event: string, handler: GameEventHandler): void;
    private emit;
    getCurrentScene(): Scene | undefined;
    getCurrentSceneDialogueHistory(): DialogueEntry[];
    getGlobalDialogueHistory(): Array<{
        dialogue: DialogueEntry;
        sceneId: string;
        timestamp: Date;
    }>;
    getSceneById(sceneId: string): Scene | undefined;
    getState(): GameState;
    getScript(): GameScript;
    getLanguageManager(): LanguageManager;
    getCurrentLanguage(): string;
    setLanguage(languageCode: string): Promise<void>;
    getAvailableLanguages(): import("../types/index.js").LanguageConfig[];
    getText(key: string, fallback?: string): string;
    getAudioManager(): AudioManager;
    getUIRenderer(): UIRenderer;
    getSaveManager(): SaveManager;
    getConfirmModal(): import("./ui/ConfirmModal.js").ConfirmModal;
    getPluginManager(): PluginManager;
    registerPlugin(plugin: Plugin): Promise<void>;
    unregisterPlugin(pluginName: string): Promise<void>;
    getPlugin(name: string): any;
    getPluginAPI(name: string): any;
    hasPlugin(name: string): boolean;
    emitCustomEvent(eventName: string, data?: any): Promise<void>;
}
