import type { IAnyValue, KeyBinding as CoreKeyBinding, KeyChord as CoreKeyChord, KeyMap as CoreKeyMap, CompletionContext as CoreCompletionContext, CompletionItem as CoreCompletionItem, CompletionProvider as CoreCompletionProvider, CompletionProviderManager as CoreCompletionProviderManager, CompletionResult as CoreCompletionResult, DecorationContext as CoreDecorationContext, DecorationProvider as CoreDecorationProvider, DecorationProviderManager as CoreDecorationProviderManager, DecorationResult as CoreDecorationResult, TextStyle as CoreTextStyle } from "@sweeteditor/core"; import { DecorationType as CoreDecorationType, EditorCommand, KeyCode, KeyModifier } from "@sweeteditor/core"; export type EditorColor = number | string; export type TextStyle = CoreTextStyle; export type KeyChord = CoreKeyChord; export type KeyBinding = CoreKeyBinding; export type KeyMap = CoreKeyMap; export { KeyCode, KeyModifier, EditorCommand }; export interface EditorTheme extends Record { backgroundColor?: EditorColor; textColor?: EditorColor; cursorColor?: EditorColor; selectionColor?: EditorColor; lineNumberColor?: EditorColor; currentLineNumberColor?: EditorColor; currentLineColor?: EditorColor; guideColor?: EditorColor; separatorLineColor?: EditorColor; splitLineColor?: EditorColor; scrollbarTrackColor?: EditorColor; scrollbarThumbColor?: EditorColor; scrollbarThumbActiveColor?: EditorColor; compositionUnderlineColor?: EditorColor; inlayHintBgColor?: EditorColor; inlayHintTextColor?: EditorColor; inlayHintIconColor?: EditorColor; foldPlaceholderBgColor?: EditorColor; foldPlaceholderTextColor?: EditorColor; phantomTextColor?: EditorColor; diagnosticErrorColor?: EditorColor; diagnosticWarningColor?: EditorColor; diagnosticInfoColor?: EditorColor; diagnosticHintColor?: EditorColor; linkedEditingActiveColor?: EditorColor; linkedEditingInactiveColor?: EditorColor; bracketHighlightBorderColor?: EditorColor; bracketHighlightBgColor?: EditorColor; completionBgColor?: EditorColor; completionBorderColor?: EditorColor; completionSelectedBgColor?: EditorColor; completionLabelColor?: EditorColor; completionDetailColor?: EditorColor; textStyles?: Record; background?: EditorColor; text?: EditorColor; lineNumber?: EditorColor; splitLine?: EditorColor; currentLine?: EditorColor; selection?: EditorColor; cursor?: EditorColor; inlayHintBg?: EditorColor; foldPlaceholderBg?: EditorColor; foldPlaceholderText?: EditorColor; phantomText?: EditorColor; } export declare namespace EditorTheme { const STYLE_KEYWORD = 1; const STYLE_STRING = 2; const STYLE_COMMENT = 3; const STYLE_NUMBER = 4; const STYLE_BUILTIN = 5; const STYLE_TYPE = 6; const STYLE_CLASS = 7; const STYLE_FUNCTION = 8; const STYLE_VARIABLE = 9; const STYLE_PUNCTUATION = 10; const STYLE_ANNOTATION = 11; const STYLE_PREPROCESSOR = 12; const STYLE_USER_BASE = 100; function dark(): EditorTheme; function light(): EditorTheme; function defineTextStyle(theme: EditorTheme, styleId: number, style: TextStyle): EditorTheme; } export interface EditorSettings { setEditorTextSize(size: number): void; getEditorTextSize(): number; setTypeface(typeface: unknown): void; getTypeface(): unknown; setFontFamily(family: string): void; getFontFamily(): string; setScale(scale: number): void; getScale(): number; setFoldArrowMode(mode: IAnyValue): void; getFoldArrowMode(): number; setWrapMode(mode: IAnyValue): void; getWrapMode(): number; setLineSpacing(add: number, mult: number): void; getLineSpacingAdd(): number; getLineSpacingMult(): number; setContentStartPadding(padding: number): void; getContentStartPadding(): number; setShowSplitLine(show: boolean): void; isShowSplitLine(): boolean; setGutterSticky(sticky: boolean): void; isGutterSticky(): boolean; setGutterVisible(visible: boolean): void; isGutterVisible(): boolean; setCurrentLineRenderMode(mode: IAnyValue): void; getCurrentLineRenderMode(): number; setAutoIndentMode(mode: IAnyValue): void; getAutoIndentMode(): number; setReadOnly(readOnly: boolean): void; isReadOnly(): boolean; setMaxGutterIcons(count: number): void; getMaxGutterIcons(): number; setDecorationScrollRefreshMinIntervalMs(ms: number): void; getDecorationScrollRefreshMinIntervalMs(): number; setDecorationOverscanViewportMultiplier(mult: number): void; getDecorationOverscanViewportMultiplier(): number; flush(): void; } export interface EditorIconProvider { resolve?(iconId: number): unknown; } export interface EditorMetadata extends Record { fileName?: string; language?: string; } export interface BracketPair { open: string; close: string; } export interface LanguageConfiguration { languageId?: string; brackets?: BracketPair[]; autoClosingPairs?: BracketPair[]; tabSize?: number | null; insertSpaces?: boolean | null; [key: string]: unknown; } export type DecorationProvider = CoreDecorationProvider; export type DecorationProviderManager = CoreDecorationProviderManager; export type DecorationContext = CoreDecorationContext; export type DecorationResult = CoreDecorationResult; export { CoreDecorationType as DecorationType }; export type CompletionProvider = CoreCompletionProvider; export type CompletionProviderManager = CoreCompletionProviderManager; export type CompletionContext = CoreCompletionContext; export type CompletionItem = CoreCompletionItem; export type CompletionResult = CoreCompletionResult; export interface NewLineContext { lineNumber: number; column: number; lineText: string; languageConfiguration?: LanguageConfiguration | null; editorMetadata?: EditorMetadata | null; } export interface NewLineAction { text: string; } export interface NewLineActionProvider { provideNewLineAction(context: NewLineContext): NewLineAction | string | null | undefined; } export type NewLineActionProviderLike = NewLineActionProvider | ((context: NewLineContext) => NewLineAction | string | null | undefined); export declare class NewLineActionProviderManager { private readonly _providers; add(provider: NewLineActionProviderLike): void; remove(provider: NewLineActionProviderLike): void; provide(context: NewLineContext): NewLineAction | null; } export type EditorEventName = "TextChangedEvent" | "CursorChangedEvent" | "SelectionChangedEvent" | "ScrollChangedEvent" | "ScaleChangedEvent" | "DocumentLoadedEvent" | "FoldToggleEvent" | "GutterIconClickEvent" | "InlayHintClickEvent" | "LongPressEvent" | "DoubleTapEvent" | "ContextMenuEvent" | "TextChanged" | "CursorChanged" | "SelectionChanged" | "ScrollChanged" | "ScaleChanged" | "DocumentLoaded" | "FoldToggle" | "GutterIconClick" | "InlayHintClick" | "LongPress" | "DoubleTap" | "ContextMenu"; export interface EditorEvent = Record> { type: TType; standardType?: string; legacyType?: string; timestamp: number; editor?: IAnyValue; payload?: TPayload; } export interface TextChangedEvent extends EditorEvent<"TextChangedEvent" | "TextChanged"> { } export interface CursorChangedEvent extends EditorEvent<"CursorChangedEvent" | "CursorChanged"> { } export interface SelectionChangedEvent extends EditorEvent<"SelectionChangedEvent" | "SelectionChanged"> { } export interface ScrollChangedEvent extends EditorEvent<"ScrollChangedEvent" | "ScrollChanged"> { } export interface ScaleChangedEvent extends EditorEvent<"ScaleChangedEvent" | "ScaleChanged"> { } export interface DocumentLoadedEvent extends EditorEvent<"DocumentLoadedEvent" | "DocumentLoaded"> { } export interface FoldToggleEvent extends EditorEvent<"FoldToggleEvent" | "FoldToggle"> { } export interface GutterIconClickEvent extends EditorEvent<"GutterIconClickEvent" | "GutterIconClick"> { } export interface InlayHintClickEvent extends EditorEvent<"InlayHintClickEvent" | "InlayHintClick"> { } export interface LongPressEvent extends EditorEvent<"LongPressEvent" | "LongPress"> { } export interface DoubleTapEvent extends EditorEvent<"DoubleTapEvent" | "DoubleTap"> { } export interface ContextMenuEvent extends EditorEvent<"ContextMenuEvent" | "ContextMenu"> { }