import type { RuntimeEmitter } from "../lib/runtime-utils.js"; import type { ActiveBinding, ActiveKey, ActiveKeyOptions, BindingState, Hooks, KeymapEvent, KeymapHost, PendingSequenceCapture, KeySequencePart, PendingSequenceState, RegisteredLayer } from "../types.js"; import type { CommandCatalogService } from "./command-catalog.js"; import type { ConditionService } from "./conditions.js"; import type { NotificationService } from "./notify.js"; import type { ActiveCommandView, State } from "./state.js"; interface ActivationOptions { onPendingSequenceChanged?: (previous: PendingSequenceState | null, next: PendingSequenceState | null) => void; } export interface ActivationService { getFocusedTarget(): TTarget | null; getFocusedTargetIfAvailable(): TTarget | null; setPendingSequence(next: PendingSequenceState | null): void; ensureValidPendingSequence(): PendingSequenceState | undefined; revalidatePendingSequenceIfNeeded(): void; hasPendingSequenceState(): boolean; getPendingSequence(): readonly KeySequencePart[]; popPendingSequence(): boolean; getActiveKeys(options?: ActiveKeyOptions): readonly ActiveKey[]; getActiveKeysForCaptures(captures: readonly PendingSequenceCapture[], options?: ActiveKeyOptions): readonly ActiveKey[]; getActiveKeysForFocused(focused: TTarget | null, options?: ActiveKeyOptions): readonly ActiveKey[]; getActiveLayers(focused: TTarget | null): RegisteredLayer[]; isLayerActiveForFocused(layer: RegisteredLayer, focused: TTarget | null): boolean; collectSequencePartsFromPending(pending: PendingSequenceState): KeySequencePart[]; collectMatchingBindings(bindings: readonly BindingState[], focused: TTarget | null, activeView: ActiveCommandView): BindingState[]; collectActiveBindings(bindings: readonly BindingState[], focused: TTarget | null, activeView: ActiveCommandView): ActiveBinding[]; } export declare function createActivationService(state: State, host: KeymapHost, hooks: RuntimeEmitter>, notify: NotificationService, conditions: ConditionService, catalog: CommandCatalogService, options?: ActivationOptions): ActivationService; export {};