import * as element_plus from 'element-plus';
import * as vue from 'vue';
import { EditorConfig, EditorSchema, EditorWidgets, EditorRoute, EditorSettings } from '../index.js';
import '@micro-app/types';
import 'vue-demi';
import '../upgrade/index.js';

declare const VueEditor: vue.DefineComponent<vue.ExtractPropTypes<{
    name: {
        type: StringConstructor;
        default: string;
    };
    url: {
        type: StringConstructor;
        required: true;
    };
    inline: BooleanConstructor;
    modelValue: {
        type: vue.PropType<EditorConfig>;
        default: () => {
            globalConfig: {};
            body: {};
        };
    };
    upload: {
        type: vue.PropType<((data: element_plus.UploadRequestOptions) => Promise<string>) | undefined>;
        default: () => {};
    };
    remoteUrl: {
        type: StringConstructor;
        required: true;
    };
    schema: {
        type: vue.PropType<EditorSchema>;
        default: () => {};
    };
    widgets: {
        type: vue.PropType<EditorWidgets>;
        default: () => never[];
    };
    routes: {
        type: vue.PropType<EditorRoute[]>;
        default: () => {
            name: string;
            path: string;
        }[];
    };
    settings: {
        type: vue.PropType<EditorSettings>;
        default: () => {};
    };
    extra: {
        type: vue.PropType<Record<string, any>>;
        default: () => {};
    };
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("mounted" | "delete" | "change" | "update:modelValue" | "selected")[], "mounted" | "delete" | "change" | "update:modelValue" | "selected", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    name: {
        type: StringConstructor;
        default: string;
    };
    url: {
        type: StringConstructor;
        required: true;
    };
    inline: BooleanConstructor;
    modelValue: {
        type: vue.PropType<EditorConfig>;
        default: () => {
            globalConfig: {};
            body: {};
        };
    };
    upload: {
        type: vue.PropType<((data: element_plus.UploadRequestOptions) => Promise<string>) | undefined>;
        default: () => {};
    };
    remoteUrl: {
        type: StringConstructor;
        required: true;
    };
    schema: {
        type: vue.PropType<EditorSchema>;
        default: () => {};
    };
    widgets: {
        type: vue.PropType<EditorWidgets>;
        default: () => never[];
    };
    routes: {
        type: vue.PropType<EditorRoute[]>;
        default: () => {
            name: string;
            path: string;
        }[];
    };
    settings: {
        type: vue.PropType<EditorSettings>;
        default: () => {};
    };
    extra: {
        type: vue.PropType<Record<string, any>>;
        default: () => {};
    };
}>> & Readonly<{
    onMounted?: ((...args: any[]) => any) | undefined;
    onDelete?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    onSelected?: ((...args: any[]) => any) | undefined;
}>, {
    upload: ((data: element_plus.UploadRequestOptions) => Promise<string>) | undefined;
    inline: boolean;
    name: string;
    modelValue: EditorConfig;
    schema: EditorSchema;
    widgets: EditorWidgets;
    routes: EditorRoute[];
    settings: EditorSettings;
    extra: Record<string, any>;
}, {}, {}, {}, "clearSelected", vue.ComponentProvideOptions, true, {}, any>;

export { VueEditor };
