/**
 * Chord Keybinding Types
 *
 * Types for multi-key chord sequences and leader key system.
 *
 * @since v1.58.1
 */
import type { Tier } from '../../core/types/auth.js';
/**
 * Chord definition for multi-key sequences
 */
export interface ChordDefinition {
    /** Unique identifier for this chord */
    id: string;
    /** Key sequence (e.g., ['Space', 's', 'a'] for "sync all") */
    sequence: string[];
    /** Action identifier to execute */
    action: string;
    /** Human-readable description */
    description: string;
    /** Category for grouping in help */
    category: ChordCategory;
    /** Minimum tier required */
    minTier: Tier;
    /** Override default timeout */
    timeout?: number;
    /** Whether this is a menu (has children) */
    isMenu?: boolean;
}
/**
 * Chord category for grouping
 */
export type ChordCategory = 'sync' | 'update' | 'plugin' | 'backup' | 'navigation' | 'find' | 'tab' | 'window' | 'macro' | 'general';
/**
 * Chord result from processing a key
 */
export type ChordResult = {
    type: 'complete';
    action: string;
    chord: ChordDefinition;
} | {
    type: 'partial';
    pending: string[];
    hints: ChordHint[];
} | {
    type: 'invalid';
    key: string;
} | {
    type: 'timeout';
    pending: string[];
} | {
    type: 'cancelled';
};
/**
 * Hint for partial chord completion
 */
export interface ChordHint {
    /** Next key in sequence */
    key: string;
    /** Description of what this key does */
    description: string;
    /** Whether this leads to another menu */
    isMenu: boolean;
    /** Full chord definition */
    chord: ChordDefinition;
}
/**
 * Chord engine state
 */
export interface ChordState {
    /** Currently pending keys */
    pending: string[];
    /** Whether a timeout is active */
    timeoutActive: boolean;
    /** Time when chord started */
    startTime: number | null;
    /** Current hints available */
    hints: ChordHint[];
    /** Whether which-key popup should show */
    showWhichKey: boolean;
}
/**
 * Chord engine configuration
 */
export interface ChordConfig {
    /** Leader key (default: Space) */
    leader: string;
    /** Timeout in ms (default: 300) */
    timeout: number;
    /** Delay before showing which-key popup (default: 200) */
    whichKeyDelay: number;
    /** Whether chord system is enabled */
    enabled: boolean;
    /** User's tier for feature gating */
    userTier: Tier;
}
/**
 * Default chord configuration
 */
export declare const DEFAULT_CHORD_CONFIG: ChordConfig;
/**
 * Category display info
 */
export declare const CHORD_CATEGORIES: Record<ChordCategory, {
    label: string;
    icon: string;
}>;
/**
 * Serialize a key for display
 */
export declare function formatKey(key: string): string;
/**
 * Format a chord sequence for display
 */
export declare function formatChord(sequence: string[], leader?: string): string;
/**
 * Check if a key is the leader key
 */
export declare function isLeaderKey(key: string, leader: string): boolean;
/**
 * Normalize a key for consistent matching
 */
export declare function normalizeKey(key: string): string;
//# sourceMappingURL=chord-types.d.ts.map