export type IActionType = | "scpi-commands" | "commands" | "javascript" | "micropython"; export interface IAction { type: IActionType; data: any; } export interface IShortcut { id: string; originalId?: string; name: string; usedIn?: string[] | undefined; action: IAction; keybinding: string; groupName: string; showInToolbar: boolean; toolbarButtonPosition: number; toolbarButtonColor: string; requiresConfirmation: boolean; selected: boolean; } export interface IShortcutsStore { shortcuts: Map; newShortcutGroupName?: string; addShortcut?(shortcut: Partial): string; updateShortcut?(shortcut: Partial): void; deleteShortcut?(shortcut: Partial): void; renderUsedInProperty?(shortcut: Partial): JSX.Element; showShortcutDialog?( shortcutsStore: IShortcutsStore, groupsStore: IGroupsStore | undefined, shortcut: Partial, callback: (shortcut: Partial) => void, codeError?: string, codeErrorLineNumber?: number, codeErrorColumnNumber?: number, hideCodeEditor?: boolean ): void; isScpiInstrument: boolean; } export interface IGroup { id: string; name: string; } export interface IGroupsStore { groups: Map; addGroup(group: Partial): string; updateGroup(group: Partial): void; deleteGroup(group: Partial): void; isGroupEnabled?(group: IGroup): boolean; enableGroup?(group: IGroup, enable: boolean): void; }