import { EditorState } from "@codemirror/state";
import { EditorView } from "@codemirror/view";
import { ThemeName } from "../extensions/appearance";
import * as PrismaQuery from "../extensions/prisma-query";
import { FileMap } from "../extensions/typescript";
import { BaseEditor } from "./base-editor";
declare type TSEditorParams = {
    domElement: Element;
    code?: string;
    readonly?: boolean;
    types?: FileMap;
    theme?: ThemeName;
    onChange?: (value: string) => void;
    onExecuteQuery?: (query: PrismaQuery.PrismaQuery) => void;
    onEnterQuery?: (query: PrismaQuery.PrismaQuery) => void;
    onLeaveQuery?: () => void;
};
export declare class TSEditor extends BaseEditor {
    protected view: EditorView;
    /**
     * Returns a state-only version of the editor, without mounting the actual view anywhere. Useful for testing.
     */
    static state(params: TSEditorParams): EditorState;
    constructor(params: TSEditorParams);
    /** @override */
    setTheme: (theme?: ThemeName | undefined) => void;
    /** @override */
    setReadOnly: (readOnly: boolean) => void;
    injectTypes: (types: FileMap) => Promise<void>;
}
export {};
