import { OnInit, AfterViewInit } from '@angular/core';
import type { ElementRef } from '@angular/core';
import { ComponentEvent } from '@ngx-dynamic-components/core';
import type { NGXDynamicComponent, UIModel } from '@ngx-dynamic-components/core';
import { Ace } from 'ace-builds';
import { Interpreter } from 'jspython-interpreter';
import * as i0 from "@angular/core";
declare enum Layout {
    horizontal = "horizontal",
    vertical = "vertical"
}
export declare class PreviewEditorComponent implements OnInit, AfterViewInit {
    scripts: string;
    initUiModel: UIModel | string;
    initDataModel: any;
    title: string;
    uiModelEl: ElementRef<HTMLElement>;
    uiModelJSONEl: ElementRef<HTMLElement>;
    scriptsEl: ElementRef<HTMLElement>;
    dataModelEl: ElementRef<HTMLElement>;
    dynamicComponent: NGXDynamicComponent;
    flex: string;
    dataModel: any;
    dataModelCopy: any;
    uiModel: string;
    uiModelEditor: Ace.Editor;
    uiModelJSONEditor: Ace.Editor;
    dataModelEditor: Ace.Editor;
    scriptsEditor: Ace.Editor;
    interpreter: Interpreter;
    editorOptions: {
        language: string;
        automaticLayout: boolean;
    };
    direction: Layout;
    codeSize: number;
    eventHandlers({ eventName, rootUIModel, parameters, sender, eventHandler }: ComponentEvent): Promise<void>;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    toggleSourceCode(): void;
    toggleLayout(): void;
    get isHorizontal(): boolean;
    onRendered(data: any): void;
    onDataModelChange(data: any): void;
    resize(): void;
    private initUIPreview;
    private setJSONEditor;
    private refreshPreview;
    private initEditor;
    static ɵfac: i0.ɵɵFactoryDeclaration<PreviewEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PreviewEditorComponent, "dc-preview-editor", never, { "scripts": { "alias": "scripts"; "required": false; }; "initUiModel": { "alias": "initUiModel"; "required": false; }; "initDataModel": { "alias": "initDataModel"; "required": false; }; "title": { "alias": "title"; "required": false; }; }, {}, never, never, false, never>;
}
export {};
