import type { JsonSchema } from "@jsonforms/core";
import type { RankedTester } from "@jsonforms/core/src/testers/testers";
import type { JsonFormsInterface, JsonFormsUISchema } from "../models";
import type { ToolContext, ToolInterface } from "./index";
export declare abstract class AbstractTool implements ToolInterface {
    private _uuid;
    propertyName: string;
    isRequired: boolean;
    childs: ToolInterface[];
    schema: JsonSchema;
    uischema: JsonFormsUISchema | any;
    constructor(uischemaType?: string);
    get uuid(): string;
    abstract clone(): ToolInterface;
    abstract importer(): any;
    abstract optionDataPrepare(context: ToolContext): Record<string, any>;
    abstract optionDataUpdate(context: ToolContext, data: Record<string, any>): void;
    abstract optionJsonforms(context: ToolContext): Promise<JsonFormsInterface | undefined>;
    abstract tester: RankedTester | undefined;
    toolbarOptions(): Record<string, any>;
}
