import type { AppKeybinding } from "../config/keybindings"; export type FocusDomain = "composer" | "selector" | "overlay" | "global"; export interface ActionMetadata { id: AppKeybinding; title: string; category: string; bindingId?: AppKeybinding; domains: readonly FocusDomain[]; exclusiveGroup?: string | false; } export declare const APP_ACTION_METADATA: readonly ActionMetadata[]; export interface ActionDefinition extends ActionMetadata { availability(context: Context): boolean; execute(context: Context): void | Promise; } export interface ActionRegistryOptions { context: Context; showError(error: string): void; } export declare class ActionRegistry { #private; private readonly options; constructor(options: ActionRegistryOptions); register(action: ActionDefinition): void; get(id: AppKeybinding): ActionDefinition | undefined; all(): readonly ActionDefinition[]; isAvailable(id: AppKeybinding): boolean; execute(id: AppKeybinding): Promise; }