import { FormElement, FormComponentCatalogue, EditorComponentCatalogue, EditorComponent, JSONSchema } from '@tomino/dynamic-form';
import { CellHighlighter } from './form/cell_highlighter';
import { ProjectManager } from './project_manager';
import { SchemaRecord } from './editor_types';
import { IStorage, IProject } from '../storage/common_storage';
import { Theme } from './themes/common';
declare type Builder = (form: FormElement, schema: JSONSchema) => DynamicForm.ProjectDataSet;
export declare class EditorState {
    static LAST: string;
    __id: number;
    _dragItem: any;
    dragItem: any;
    buildProject: Builder;
    componentCatalogue: FormComponentCatalogue;
    dataSource: any;
    editorCatalogue: EditorComponentCatalogue;
    form: DynamicForm.FormDataSet;
    handlers: any;
    highlighter: CellHighlighter;
    hoverParent: FormElement;
    leftPanelConfig: boolean[];
    manager: ProjectManager;
    schema: DynamicForm.SchemaDataSet;
    state: DynamicForm.StateDataSet;
    selectedDataSetTab: string;
    selectedParent: DynamicForm.FormDataSet;
    selectedParentSchema: DynamicForm.SchemaDataSet;
    selectedSourcePath: string;
    tabSelection: {
        [index: string]: any;
    };
    types: SchemaRecord[];
    theme: Theme;
    projectHandlers: string[];
    help: string;
    dataVersion: number;
    dataPreview: string;
    previewOpen: boolean;
    project: DynamicForm.ProjectDataSet;
    alert: any;
    authToken: string;
    auth: {
        user: any;
    } & import("mobx").IObservableObject;
    app: {};
    private _cachedProps;
    private _cachedChildProps;
    constructor(componentCatalogue?: FormComponentCatalogue, editorCatalogue?: EditorComponentCatalogue, handlers?: any, types?: SchemaRecord[], storage?: IStorage, theme?: string);
    loadLastProject(): Promise<import("./form_store").ProjectDataSet>;
    readonly data: any;
    recomputeData(): void;
    recomputeDataBounce: () => void;
    highlight(highlighter: CellHighlighter, row: number, column: number, className: string, width?: number, clear?: boolean): void;
    highlightMultiple(highlighter: CellHighlighter, cells: {
        row: number;
        column: number;
        className: string;
    }[]): void;
    changeTab(from: string, to: string): void;
    cachedProps(element: EditorComponent): FormElement<any, any>[];
    cachedChildProps(element: EditorComponent): FormElement<any, any>[];
    load(project: IProject, saveLast?: boolean): void;
    duplicateProject(name: string): void;
    createProject(name: string): void;
    editorProps: FormElement[];
}
export {};
