import type { ActiveBinding, ActiveKey, ActiveKeyOptions, BindingExpander, BindingParser, BindingFieldCompiler, LayerBindingsTransformer, BindingTransformer, Events, CommandFieldCompiler, CommandTransformer, CommandBindingsQuery, CommandEntry, CommandQuery, Command, KeymapEvent, KeymapHost, HostMetadata, LayerAnalyzer, Listener, RunCommandOptions, RunCommandResult, CommandResolver, KeyAfterInputContext, KeyInterceptOptions, KeyInputContext, Layer, LayerFieldCompiler, KeyDisambiguationResolver, RawInterceptOptions, RawInputContext, EventMatchResolver, KeyStringifyInput, KeyToken, SequencePattern, KeyLike, KeySequencePart, StringifyOptions } from "./types.js"; import { KEYMAP_EXTENSION_CONTEXT, type KeymapExtensionContext } from "./services/extension-context.js"; export declare class Keymap { #private; getPendingSequence: () => readonly KeySequencePart[]; getActiveKeys: (options?: ActiveKeyOptions) => readonly ActiveKey[]; constructor(host: KeymapHost); [KEYMAP_EXTENSION_CONTEXT](): KeymapExtensionContext; setData(name: string, value: unknown): void; getData(name: string): unknown; getHostMetadata(): Readonly; hasPendingSequence(): boolean; createKeyMatcher(key: KeyLike): (input: KeyStringifyInput | null | undefined) => boolean; parseKeySequence(key: KeyLike): readonly KeySequencePart[]; formatKey(key: KeyLike, options?: StringifyOptions): string; clearPendingSequence(): void; popPendingSequence(): boolean; getCommands(query?: CommandQuery): readonly Command[]; getCommandEntries(query?: CommandQuery): readonly CommandEntry[]; getCommandBindings(query: CommandBindingsQuery): ReadonlyMap[]>; acquireResource(key: symbol, setup: () => () => void): () => void; runCommand(cmd: string, options?: RunCommandOptions): RunCommandResult; dispatchCommand(cmd: string, options?: RunCommandOptions): RunCommandResult; on(name: "state", fn: Listener["state"]>): () => void; on(name: "pendingSequence", fn: Listener["pendingSequence"]>): () => void; on(name: "dispatch", fn: Listener["dispatch"]>): () => void; on(name: "warning", fn: Listener["warning"]>): () => void; on(name: "error", fn: Listener["error"]>): () => void; intercept(name: "key", fn: (ctx: KeyInputContext) => void, options?: KeyInterceptOptions): () => void; intercept(name: "key:after", fn: (ctx: KeyAfterInputContext) => void, options?: KeyInterceptOptions): () => void; intercept(name: "raw", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void; registerLayer(layer: Layer): () => void; registerLayerFields(fields: Record): () => void; prependLayerBindingsTransformer(transformer: LayerBindingsTransformer): () => void; appendLayerBindingsTransformer(transformer: LayerBindingsTransformer): () => void; clearLayerBindingsTransformers(): void; prependBindingTransformer(transformer: BindingTransformer): () => void; appendBindingTransformer(transformer: BindingTransformer): () => void; clearBindingTransformers(): void; prependCommandTransformer(transformer: CommandTransformer): () => void; appendCommandTransformer(transformer: CommandTransformer): () => void; clearCommandTransformers(): void; prependBindingParser(parser: BindingParser): () => void; appendBindingParser(parser: BindingParser): () => void; clearBindingParsers(): void; registerToken(token: KeyToken): () => void; registerSequencePattern(pattern: SequencePattern): () => void; prependBindingExpander(expander: BindingExpander): () => void; appendBindingExpander(expander: BindingExpander): () => void; clearBindingExpanders(): void; registerBindingFields(fields: Record): () => void; registerCommandFields(fields: Record): () => void; prependCommandResolver(resolver: CommandResolver): () => void; appendCommandResolver(resolver: CommandResolver): () => void; clearCommandResolvers(): void; prependLayerAnalyzer(analyzer: LayerAnalyzer): () => void; appendLayerAnalyzer(analyzer: LayerAnalyzer): () => void; clearLayerAnalyzers(): void; prependEventMatchResolver(resolver: EventMatchResolver): () => void; appendEventMatchResolver(resolver: EventMatchResolver): () => void; clearEventMatchResolvers(): void; prependDisambiguationResolver(resolver: KeyDisambiguationResolver): () => void; appendDisambiguationResolver(resolver: KeyDisambiguationResolver): () => void; clearDisambiguationResolvers(): void; }