import { IGame, GameRenderState } from '../types';
import { GameInfo } from '../game-registry';
import { HighScoreManager } from '../high-scores';
import { ConfigManager, ConfigKey } from '../config';
import { UpdateInfo } from '../version-checker';
export declare class GameMenu implements IGame {
    private highScores?;
    private configManager?;
    private onConfigChanged?;
    readonly name = "Game Menu";
    private width;
    private height;
    private games;
    private cursor;
    private _selected;
    private currentTab;
    private configCursor;
    private claudeConnected;
    private externalMovesCache;
    private gamesScrollOffset;
    private scoresScrollOffset;
    private updateInfo;
    constructor(highScores?: HighScoreManager | undefined, configManager?: ConfigManager | undefined, onConfigChanged?: ((key: ConfigKey) => void) | undefined);
    setUpdateInfo(info: UpdateInfo): void;
    get selectedGame(): GameInfo | null;
    clearSelection(): void;
    setClaudeConnected(connected: boolean): void;
    init(width: number, height: number): void;
    private refreshExternalMovesCache;
    tick(_deltaMs: number): void;
    handleInput(key: string): void;
    private handleGamesInput;
    private ensureGameCursorVisible;
    private getScoresMaxScrollOffset;
    private handleScoresInput;
    private handleConfigInput;
    private cycleConfigValue;
    getState(): GameRenderState;
    private renderTabBar;
    private renderGamesTab;
    private renderVersionInfo;
    private renderScoresTab;
    private renderConfigTab;
    private formatConfigValue;
    resize(width: number, height: number): void;
    isPaused(): boolean;
    pause(): void;
    resume(): void;
    isGameOver(): boolean;
    reset(): void;
    private createEmptyGrid;
    private writeText;
    private writeTextAt;
}
