/**
 * useChordMode Hook
 *
 * React hook for integrating chord keybindings into components.
 *
 * @since v1.58.1
 */
import type { Tier } from '../../core/types/auth.js';
import type { ChordConfig, ChordDefinition, ChordHint, ChordResult, ChordState } from './chord-types.js';
/**
 * Hook configuration
 */
export interface UseChordModeConfig {
    /** Enable chord mode */
    enabled?: boolean;
    /** User's tier for feature gating */
    userTier?: Tier;
    /** Chord configuration overrides */
    config?: Partial<ChordConfig>;
    /** Custom chords to add */
    customChords?: ChordDefinition[];
    /** Replace default chords entirely */
    replaceDefaults?: boolean;
    /** Callback when a chord completes */
    onChordComplete?: (action: string, chord: ChordDefinition) => void;
    /** Callback when chord state changes */
    onStateChange?: (state: ChordState) => void;
}
/**
 * Hook return type
 */
export interface UseChordModeReturn {
    /** Current chord state */
    state: ChordState;
    /** Whether chord mode is enabled */
    enabled: boolean;
    /** Whether a chord is active */
    isActive: boolean;
    /** Whether the which-key popup should show */
    showWhichKey: boolean;
    /** Current hints */
    hints: ChordHint[];
    /** Pending keys in the current chord */
    pending: string[];
    /** Process a key event */
    processKey: (key: string) => ChordResult;
    /** Cancel the current chord */
    cancel: () => void;
    /** Check if a key is the leader */
    isLeader: (key: string) => boolean;
    /** Register a custom chord */
    registerChord: (chord: ChordDefinition) => void;
    /** Unregister a chord */
    unregisterChord: (id: string) => boolean;
    /** Get all registered chords */
    getChords: () => ChordDefinition[];
    /** Get chords by category */
    getChordsByCategory: (category: string) => ChordDefinition[];
    /** Toggle chord mode */
    toggle: () => boolean;
    /** Enable chord mode */
    enable: () => void;
    /** Disable chord mode */
    disable: () => void;
}
/**
 * useChordMode hook
 */
export declare function useChordMode(config?: UseChordModeConfig): UseChordModeReturn;
//# sourceMappingURL=useChordMode.d.ts.map