/**
 * Keybinding Service
 *
 * Manages keybinding configuration, conflict detection, and resolution.
 *
 * @since v1.58.3
 */
import type { ActionCategory, ActionDefinition, KeybindingConfig, KeybindingConflict, KeybindingContext, KeybindingExportFormat, PresetName, ResolvedKeybinding } from './keybinding-types.js';
/**
 * Keybinding Service
 */
export declare class KeybindingService {
    private config;
    private resolvedBindings;
    private keyToAction;
    constructor(config?: Partial<KeybindingConfig>);
    /**
     * Resolve all bindings from preset + custom
     */
    private resolveBindings;
    /**
     * Get action for a key in a context
     */
    getActionForKey(key: string | string[], context: KeybindingContext): string | null;
    /**
     * Get all keys for an action
     */
    getKeysForAction(action: string): string[][];
    /**
     * Get all resolved bindings
     */
    getAllBindings(): ResolvedKeybinding[];
    /**
     * Get bindings by context
     */
    getBindingsByContext(context: KeybindingContext): ResolvedKeybinding[];
    /**
     * Get bindings by category
     */
    getBindingsByCategory(category: ActionCategory): ResolvedKeybinding[];
    /**
     * Set a custom binding
     */
    setBinding(action: string, keys: string | string[], context: KeybindingContext): KeybindingConflict[];
    /**
     * Remove a custom binding (revert to default)
     */
    resetBinding(action: string, context: KeybindingContext): void;
    /**
     * Disable an action
     */
    disableAction(action: string): void;
    /**
     * Enable a previously disabled action
     */
    enableAction(action: string): void;
    /**
     * Detect keybinding conflicts
     */
    detectConflicts(keys: string[], context: KeybindingContext, excludeAction?: string): KeybindingConflict[];
    /**
     * Get all conflicts in the current configuration
     */
    getAllConflicts(): KeybindingConflict[];
    /**
     * Change the active preset
     */
    setPreset(preset: PresetName): void;
    /**
     * Reset all custom bindings
     */
    resetAllBindings(): void;
    /**
     * Export configuration
     */
    export(): KeybindingExportFormat;
    /**
     * Import configuration
     */
    import(data: KeybindingExportFormat): {
        success: boolean;
        errors: string[];
    };
    /**
     * Get configuration
     */
    getConfig(): KeybindingConfig;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<KeybindingConfig>): void;
    /**
     * Get action definition
     */
    getActionDefinition(action: string): ActionDefinition | undefined;
    /**
     * Get all action definitions
     */
    getAllActionDefinitions(): ActionDefinition[];
    /**
     * Get action definitions by category
     */
    getActionDefinitionsByCategory(category: ActionCategory): ActionDefinition[];
    /**
     * Check tier access
     */
    private isTierAllowed;
    /**
     * Set leader key
     */
    setLeader(key: string): void;
    /**
     * Set chord timeout
     */
    setTimeout(ms: number): void;
}
/**
 * Create a keybinding service instance
 */
export declare function createKeybindingService(config?: Partial<KeybindingConfig>): KeybindingService;
//# sourceMappingURL=keybinding-service.d.ts.map