import { Observable } from 'rxjs';
import { EditorOptions } from '../../models';
import { Marker } from '../models';
export declare abstract class CoreFacade {
    private readonly $onCoreFinishLoad;
    private readonly $onCodeChange;
    private readonly $onCodeValidityChange;
    private _completionItems;
    private _lastCodeEmitted;
    private _lastCodeValidityEmitted;
    private _linter;
    changeEditorOptions(options: EditorOptions): void;
    changeCode(code: string): void;
    setPayload(payload: string): void;
    protected abstract setCodeWithCursorPreservation(code: string): void;
    abstract initCore(): void;
    abstract destroyCore(): void;
    abstract setCoreWrapperElement(element: HTMLDivElement): void;
    abstract setCode(code: string): void;
    getOnCoreFinishLoadObservable(): Observable<void>;
    getOnCodeChangeObservable(): Observable<string>;
    getOnCodeValidityChangeObservable(): Observable<boolean>;
    protected abstract setCoreEditorOptions(options: EditorOptions): void;
    protected abstract highlightCode(markers: Marker[]): void;
    protected notifyCoreFinishLoad(): void;
    protected notifyCodeChange(code: string): void;
    protected updateCompletionItems(items: string[]): void;
    private setLinter;
    private validateCode;
    private notifyCodeValidityChange;
    private validateLanguage;
    private validateTheme;
    private getSafeCode;
}
