export type ToggleKey = 'f12' | 'ctrl+]';
export type ModifierKey = 'ctrl' | 'alt';
export interface SplitGameConfig {
    toggleKey: ToggleKey;
    modifierKey: ModifierKey;
    gameWidthPercent: number;
    scrollbackLines: number;
}
export declare const CONFIG_KEYS: readonly ["toggleKey", "modifierKey", "gameWidthPercent", "scrollbackLines"];
export type ConfigKey = (typeof CONFIG_KEYS)[number];
export declare class ConfigManager {
    private filePath;
    private config;
    constructor();
    get<K extends keyof SplitGameConfig>(key: K): SplitGameConfig[K];
    set<K extends keyof SplitGameConfig>(key: K, value: SplitGameConfig[K]): void;
    getAll(): SplitGameConfig;
    reset(): void;
    resetKey<K extends keyof SplitGameConfig>(key: K): void;
    static defaults(): SplitGameConfig;
    static validToggleKeys(): ToggleKey[];
    static validModifierKeys(): ModifierKey[];
    static minGameWidth(): number;
    static maxGameWidth(): number;
    static minScrollback(): number;
    static maxScrollback(): number;
    validate<K extends keyof SplitGameConfig>(key: K, value: SplitGameConfig[K]): void;
    private load;
    private clampWidth;
    private clampScrollback;
    private save;
    private ensureDir;
}
