import { DatabaseVendor } from '../../constants/sql/database'; import { SharedStore, SharedStoreConfig } from '../../engine/shared-store'; import { ThemeOptions } from '../../themes/radix-ui-theme'; import { Theme as ThemeType } from '../../themes/tokens'; import { KeyBindingMap, KeyBindingName } from '../../utils/keyboard-shortcut'; declare global { interface HTMLElementTagNameMap { 'erd-editor': ErdEditorElement; } } export type ErdEditorProps = { readonly: boolean; systemDarkMode: boolean; enableThemeBuilder: boolean; }; export interface ErdEditorElement extends ErdEditorProps, HTMLElement { value: string; focus: () => void; blur: () => void; clear: () => void; destroy: () => void; setInitialValue: (value: string) => void; setPresetTheme: (themeOptions: Partial) => void; setTheme: (theme: Partial) => void; setKeyBindingMap: (keyBindingMap: Partial>) => void; setSchemaSQL: (value: string) => void; getSchemaSQL: (databaseVendor?: DatabaseVendor) => string; getSharedStore: (config?: SharedStoreConfig & { mouseTracker?: boolean; }) => SharedStore; setDiffValue: (value: string) => void; }