import type { JsonSchema, UISchemaElement } from "@jsonforms/core";
import type { JsonFormsInterface, ToolContext, ToolFinderInterface, ToolInterface } from "../models";
import { AbstractTool } from "./AbstractTool";
export declare class SchemaTool extends AbstractTool implements ToolInterface {
    importer: () => {
        new (...args: any[]): {
            $: import("vue").ComponentInternalInstance;
            $data: {};
            $props: Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{}>>, never>;
            $attrs: {
                [x: string]: unknown;
            };
            $refs: {
                [x: string]: unknown;
            };
            $slots: Readonly<{
                [name: string]: import("vue").Slot<any> | undefined;
            }>;
            $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
            $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
            $emit: (event: string, ...args: any[]) => void;
            $el: any;
            $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{}>>, {
                $emit: (event: "deleteByTool", ...args: any[]) => void;
                tool: ToolInterface;
                isToolbar: boolean;
                isRoot: boolean;
                isInlineType: boolean;
                hideActionbar: boolean;
                prefixLabel: string;
                propertyName: string;
                $props: {
                    readonly tool?: ToolInterface | undefined;
                    readonly isToolbar?: boolean | undefined;
                    readonly isRoot?: boolean | undefined;
                    readonly isInlineType?: boolean | undefined;
                    readonly hideActionbar?: boolean | undefined;
                    readonly prefixLabel?: string | undefined;
                    readonly propertyName?: string | undefined;
                };
            }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}> & {
                beforeCreate?: ((() => void) | (() => void)[]) | undefined;
                created?: ((() => void) | (() => void)[]) | undefined;
                beforeMount?: ((() => void) | (() => void)[]) | undefined;
                mounted?: ((() => void) | (() => void)[]) | undefined;
                beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
                updated?: ((() => void) | (() => void)[]) | undefined;
                activated?: ((() => void) | (() => void)[]) | undefined;
                deactivated?: ((() => void) | (() => void)[]) | undefined;
                beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
                beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
                destroyed?: ((() => void) | (() => void)[]) | undefined;
                unmounted?: ((() => void) | (() => void)[]) | undefined;
                renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
                renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
                errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void)[]) | undefined;
            };
            $forceUpdate: () => void;
            $nextTick: typeof import("vue").nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
        } & Readonly<import("vue").ExtractPropTypes<{}>> & import("vue").ShallowUnwrapRef<{
            $emit: (event: "deleteByTool", ...args: any[]) => void;
            tool: ToolInterface;
            isToolbar: boolean;
            isRoot: boolean;
            isInlineType: boolean;
            hideActionbar: boolean;
            prefixLabel: string;
            propertyName: string;
            $props: {
                readonly tool?: ToolInterface | undefined;
                readonly isToolbar?: boolean | undefined;
                readonly isRoot?: boolean | undefined;
                readonly isInlineType?: boolean | undefined;
                readonly hideActionbar?: boolean | undefined;
                readonly prefixLabel?: string | undefined;
                readonly propertyName?: string | undefined;
            };
        }> & {} & import("vue").ComponentCustomProperties & {};
        __isFragment?: undefined;
        __isTeleport?: undefined;
        __isSuspense?: undefined;
    } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{}>>, {
        $emit: (event: "deleteByTool", ...args: any[]) => void;
        tool: ToolInterface;
        isToolbar: boolean;
        isRoot: boolean;
        isInlineType: boolean;
        hideActionbar: boolean;
        prefixLabel: string;
        propertyName: string;
        $props: {
            readonly tool?: ToolInterface | undefined;
            readonly isToolbar?: boolean | undefined;
            readonly isRoot?: boolean | undefined;
            readonly isInlineType?: boolean | undefined;
            readonly hideActionbar?: boolean | undefined;
            readonly prefixLabel?: string | undefined;
            readonly propertyName?: string | undefined;
        };
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
        $slots: {
            header?(_: {}): any;
        };
    });
    tester: (uischema: UISchemaElement, schema: JsonSchema, context: import("@jsonforms/core").TesterContext) => number;
    clone: () => ToolInterface;
    constructor();
    optionDataPrepare(context: ToolContext): Record<string, any>;
    optionDataUpdate(context: ToolContext, data: Record<string, any>): void;
    optionJsonforms(context: ToolContext): Promise<JsonFormsInterface | undefined>;
    toolbarOptions(): Record<string, any>;
    generateJsonSchema(): JsonSchema | undefined;
    initChilds(toolFinder: ToolFinderInterface, baseSchemaTool?: ToolInterface | undefined): ToolInterface[];
}
export declare const schemaTool: SchemaTool;
