import { EditorView } from '@codemirror/view';
import { Compartment, Extension } from '@codemirror/state';
import { HighlightStyle } from '@codemirror/language';
import { BaseEditorConfig } from './types';
/** Resolve a container reference to an HTMLElement */
export declare function resolveContainer(container: HTMLElement | string): HTMLElement;
/** Custom syntax highlighting using CSS variables for theme adaptability */
declare const tfHighlightStyle: HighlightStyle;
/** Editor chrome theme using CSS variables */
declare const editorTheme: Extension;
export declare class BaseEditor {
    protected view: EditorView;
    protected container: HTMLElement;
    protected readOnlyCompartment: Compartment;
    protected lineNumbersCompartment: Compartment;
    protected wordWrapCompartment: Compartment;
    private onChangeCallback;
    constructor(config: BaseEditorConfig, extraExtensions?: Extension[]);
    /** Get the full editor content */
    getValue(): string;
    /** Replace the entire editor content */
    setValue(value: string): void;
    /** Toggle read-only mode */
    setReadOnly(readOnly: boolean): void;
    /** Toggle line numbers */
    setLineNumbers(show: boolean): void;
    /** Toggle word wrap */
    setWordWrap(wrap: boolean): void;
    /** Focus the editor */
    focus(): void;
    /** Blur the editor */
    blur(): void;
    /** Get the total number of lines */
    getLineCount(): number;
    /** Scroll to a specific line number (1-indexed) */
    scrollToLine(line: number): void;
    /** Get the underlying CodeMirror EditorView */
    getView(): EditorView;
    /** Set the onChange callback */
    setOnChange(callback: ((value: string) => void) | null): void;
    /** Destroy the editor and remove it from the DOM */
    destroy(): void;
}
export { editorTheme, tfHighlightStyle };
//# sourceMappingURL=base.d.ts.map