/** * Quick Actions Types * * Types for quick actions, bookmarks, and fuzzy finder. * * @since v1.58.4 */ import type { Tier } from '../../core/types/auth.js'; /** * A quick action item */ export interface QuickActionItem { /** Unique identifier */ id: string; /** Display label */ label: string; /** Secondary text */ description?: string; /** Icon or emoji */ icon?: string; /** Category for grouping */ category: QuickActionCategory; /** Action to execute */ action: string; /** Action parameters */ params?: Record; /** Keyboard shortcut (if any) */ shortcut?: string; /** Minimum tier required */ tier?: Tier; /** Match score (for fuzzy search results) */ score?: number; /** Whether this is a recent item */ isRecent?: boolean; /** Whether this is a favorite */ isFavorite?: boolean; } /** * Quick action category */ export type QuickActionCategory = 'plugin' | 'server' | 'action' | 'view' | 'recent' | 'favorite' | 'registry'; /** * Bookmark/favorite */ export interface Bookmark { /** Unique identifier */ id: string; /** Display label */ label: string; /** Type of bookmarked item */ type: 'plugin' | 'server' | 'view' | 'action'; /** Item identifier */ itemId: string; /** Optional keyboard shortcut (1-9) */ shortcut?: number; /** When created */ createdAt: number; /** Usage count */ usageCount: number; /** Tags for organization */ tags?: string[]; } /** * Quick actions configuration */ export interface QuickActionsConfig { /** Whether quick actions are enabled */ enabled: boolean; /** User's tier for feature gating */ userTier: Tier; /** Maximum recent items to track */ maxRecent: number; /** Maximum bookmarks */ maxBookmarks: number; /** Whether to show recent items in quick open */ showRecent: boolean; /** Whether to show favorites first */ prioritizeFavorites: boolean; } /** * Quick actions state */ export interface QuickActionsState { /** Current query */ query: string; /** Filtered results */ results: QuickActionItem[]; /** Selected index */ selectedIndex: number; /** Whether open */ isOpen: boolean; /** Loading state */ isLoading: boolean; } /** * Default quick actions configuration */ export declare const DEFAULT_QUICK_ACTIONS_CONFIG: QuickActionsConfig; /** * Create initial quick actions state */ export declare function createInitialQuickActionsState(): QuickActionsState; /** * Create a quick action item */ export declare function createQuickActionItem(id: string, label: string, category: QuickActionCategory, action: string, options?: Partial): QuickActionItem; /** * Create a bookmark */ export declare function createBookmark(type: Bookmark['type'], itemId: string, label: string, shortcut?: number): Bookmark; /** * Fuzzy match score calculation */ export declare function calculateFuzzyScore(query: string, target: string): number; /** * Sort items by score */ export declare function sortByScore(items: QuickActionItem[]): QuickActionItem[]; /** * Group items by category */ export declare function groupByCategory(items: QuickActionItem[]): Map; /** * Get category display name */ export declare function getCategoryDisplayName(category: QuickActionCategory): string; /** * Get category icon */ export declare function getCategoryIcon(category: QuickActionCategory): string; //# sourceMappingURL=quick-actions-types.d.ts.map