import { MonacoEditorLanguageClientWrapper, UserConfig } from 'monaco-editor-wrapper';
import React, { CSSProperties } from 'react';
export type MonacoEditorProps = {
    style?: CSSProperties;
    className?: string;
    userConfig: UserConfig;
    onTextChanged?: (text: string, isDirty: boolean) => void;
    onLoad?: (wrapper: MonacoEditorLanguageClientWrapper) => void;
    onError?: (e: any) => void;
};
export declare class MonacoEditorReactComp<T extends MonacoEditorProps = MonacoEditorProps> extends React.Component<T> {
    private wrapper;
    private containerElement?;
    private _subscription;
    private isRestarting?;
    private started;
    constructor(props: T);
    componentDidMount(): Promise<void>;
    componentDidUpdate(prevProps: T): Promise<void>;
    componentWillUnmount(): void;
    protected assignRef: (component: HTMLDivElement) => void;
    render(): React.JSX.Element;
    protected handleReinit(): Promise<void>;
    protected isReInitRequired(prevProps: T): boolean;
    protected destroyMonaco(): Promise<void>;
    protected initMonaco(): Promise<void>;
    protected startMonaco(): Promise<void>;
    private handleOnTextChanged;
    getEditorWrapper(): MonacoEditorLanguageClientWrapper;
    /**
     * Executes a custom VSCode/LSP command by name with args, and returns the result
     * @param cmd Command to execute
     * @param args Arguments to pass along with this command
     * @returns The result of executing this command in the language server
     */
    executeCommand(cmd: string, ...args: unknown[]): Thenable<unknown>;
}
//# sourceMappingURL=index.d.ts.map