import type { Keymap } from "../keymap.js"; import type { BindingState, KeymapEvent, RegisteredLayer, RunCommandOptions, RunCommandResult } from "../types.js"; import type { CommandCatalogService } from "./command-catalog.js"; import type { ActivationService } from "./activation.js"; import type { NotificationService } from "./notify.js"; import type { RuntimeService } from "./runtime.js"; interface CommandExecutorOptions { keymap: Keymap; createCommandEvent: () => TEvent; } export interface CommandExecutorService { runCommand(cmd: string, options?: RunCommandOptions): RunCommandResult; dispatchCommand(cmd: string, options?: RunCommandOptions): RunCommandResult; runBinding(bindingLayer: RegisteredLayer, binding: BindingState, event: TEvent, focused: TTarget | null, payload?: unknown): boolean; } export declare function createCommandExecutorService(notify: NotificationService, runtime: RuntimeService, activation: ActivationService, catalog: CommandCatalogService, options: CommandExecutorOptions): CommandExecutorService; export {};