import type { KeySequencePart } from "../types.js"; export type KeyModifierName = "ctrl" | "shift" | "meta" | "super" | "hyper"; export interface KeySequenceFormatPart { stroke: KeySequencePart["stroke"]; display: string; match?: KeySequencePart["match"]; tokenName?: string; patternName?: string; } export type TokenDisplayResolver = Readonly> | ((tokenName: string, part: KeySequenceFormatPart) => string | undefined); export type PatternDisplayResolver = Readonly> | ((patternName: string, part: KeySequenceFormatPart) => string | undefined); export interface FormatKeySequenceOptions { tokenDisplay?: TokenDisplayResolver; patternDisplay?: PatternDisplayResolver; keyNameAliases?: Readonly>; modifierAliases?: Partial>; separator?: string; } export interface FormatCommandBindingsOptions extends FormatKeySequenceOptions { bindingSeparator?: string; dedupe?: boolean; } export interface SequenceBindingLike { sequence: readonly KeySequenceFormatPart[]; } export declare function formatKeySequence(parts: readonly KeySequenceFormatPart[] | undefined, options?: FormatKeySequenceOptions): string; export declare function formatCommandBindings(bindings: readonly SequenceBindingLike[] | undefined, options?: FormatCommandBindingsOptions): string | undefined;