import type { ConditionService } from "./conditions.js"; import type { State } from "./state.js"; import type { NotificationService } from "./notify.js"; import type { Binding, BindingCompilationResult, KeyLike, KeymapEvent, KeySequencePart, ResolvedKeyToken, StringifyOptions } from "../types.js"; export interface CompilerOptions { warnUnknownField: (kind: "binding" | "layer", fieldName: string) => void; warnUnknownToken: (token: string, sequence: string) => void; } export interface CompilerService { parseTokenKey(key: KeyLike): KeySequencePart; parseKeySequence(key: KeyLike): KeySequencePart[]; formatKey(key: KeyLike, options?: StringifyOptions): string; compileBindings(bindings: readonly Binding[], tokens: ReadonlyMap, sourceTarget: TTarget | undefined, sourceLayerOrder: number, fields?: Readonly>): BindingCompilationResult; } export declare function createCompilerService(state: State, notify: NotificationService, conditions: ConditionService, options: CompilerOptions): CompilerService;