/**
 * Customizable Keyboard Shortcuts
 *
 * Provides keyboard shortcut management:
 * - Default shortcuts
 * - Custom key bindings
 * - Conflict detection
 * - Persistence
 */
export type ModifierKey = 'ctrl' | 'alt' | 'shift' | 'meta';
export type ActionCategory = 'navigation' | 'editing' | 'session' | 'tools' | 'ui';
export interface KeyBinding {
    key: string;
    modifiers: ModifierKey[];
}
export interface ShortcutAction {
    id: string;
    name: string;
    description: string;
    category: ActionCategory;
    defaultBinding: KeyBinding;
    currentBinding: KeyBinding;
    enabled: boolean;
}
export interface ShortcutConfig {
    actions: ShortcutAction[];
    customBindings: Map<string, KeyBinding>;
}
/**
 * Default keyboard shortcuts
 */
export declare const DEFAULT_SHORTCUTS: Omit<ShortcutAction, 'currentBinding'>[];
/**
 * Keyboard Shortcuts Manager
 */
export declare class ShortcutManager {
    private actions;
    private bindingMap;
    private configPath;
    constructor(configPath?: string);
    /**
     * Get action by ID
     */
    getAction(id: string): ShortcutAction | undefined;
    /**
     * Get all actions
     */
    getAllActions(): ShortcutAction[];
    /**
     * Get actions by category
     */
    getActionsByCategory(category: ActionCategory): ShortcutAction[];
    /**
     * Get action for a key event
     */
    getActionForKey(key: string, modifiers: ModifierKey[]): ShortcutAction | undefined;
    /**
     * Set custom binding for action
     */
    setBinding(actionId: string, binding: KeyBinding): {
        success: boolean;
        conflict?: string;
    };
    /**
     * Reset action to default binding
     */
    resetBinding(actionId: string): boolean;
    /**
     * Reset all bindings to defaults
     */
    resetAllBindings(): void;
    /**
     * Enable/disable action
     */
    setEnabled(actionId: string, enabled: boolean): boolean;
    /**
     * Format binding for display
     */
    formatBinding(binding: KeyBinding): string;
    /**
     * Format shortcuts list for display
     */
    formatShortcutsList(): string;
    /**
     * Serialize binding for map key
     */
    private serializeBinding;
    /**
     * Rebuild binding map
     */
    private rebuildBindingMap;
    /**
     * Load config from file
     */
    private loadConfig;
    /**
     * Save config to file
     */
    private saveConfig;
}
/**
 * Get or create shortcut manager
 */
export declare function getShortcutManager(): ShortcutManager;
export default ShortcutManager;
