/**
 * Chord Engine
 *
 * Detects and processes multi-key chord sequences with leader key support.
 *
 * @since v1.58.1
 */
import type { ChordConfig, ChordDefinition, ChordHint, ChordResult, ChordState } from './chord-types.js';
/**
 * Create initial chord state
 */
export declare function createInitialChordState(): ChordState;
/**
 * Chord Engine for processing multi-key sequences
 */
export declare class ChordEngine {
    private chords;
    private state;
    private config;
    private timeoutId;
    private whichKeyTimeoutId;
    private onStateChange?;
    private onComplete?;
    constructor(config?: Partial<ChordConfig>, callbacks?: {
        onStateChange?: (state: ChordState) => void;
        onComplete?: (action: string, chord: ChordDefinition) => void;
    });
    /**
     * Register a chord
     */
    register(chord: ChordDefinition): void;
    /**
     * Register multiple chords
     */
    registerAll(chords: ChordDefinition[]): void;
    /**
     * Unregister a chord
     */
    unregister(id: string): boolean;
    /**
     * Clear all registered chords
     */
    clearAll(): void;
    /**
     * Process a key press
     */
    processKey(key: string): ChordResult;
    /**
     * Cancel the current chord
     */
    cancel(): ChordResult;
    /**
     * Get current chord state
     */
    getState(): ChordState;
    /**
     * Get pending chord sequence
     */
    getPending(): string[];
    /**
     * Check if a chord is in progress
     */
    isActive(): boolean;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<ChordConfig>): void;
    /**
     * Get all registered chords
     */
    getAllChords(): ChordDefinition[];
    /**
     * Get chords by category
     */
    getChordsByCategory(category: string): ChordDefinition[];
    /**
     * Check for conflicts with a new chord
     */
    hasConflict(sequence: string[]): ChordDefinition | null;
    /**
     * Get hints for the current partial sequence
     */
    getHints(): ChordHint[];
    /**
     * Check if a chord is available for the current tier
     */
    private isChordAvailable;
    /**
     * Get hints for a given sequence
     */
    private getHintsForSequence;
    /**
     * Serialize a key sequence for map lookup
     */
    private serializeSequence;
    /**
     * Start the chord timeout
     */
    private startTimeout;
    /**
     * Start the which-key delay
     */
    private startWhichKeyDelay;
    /**
     * Cancel all timeouts
     */
    private cancelTimeouts;
    /**
     * Reset state to initial
     */
    private resetState;
    /**
     * Notify listeners of state change
     */
    private notifyStateChange;
}
/**
 * Create a chord engine instance
 */
export declare function createChordEngine(config?: Partial<ChordConfig>, callbacks?: {
    onStateChange?: (state: ChordState) => void;
    onComplete?: (action: string, chord: ChordDefinition) => void;
}): ChordEngine;
//# sourceMappingURL=chord-engine.d.ts.map