import type { JsonFormsRendererRegistryEntry, ControlElement, UISchemaElement, JsonSchema } from '@jsonforms/core';
import { i18nDefaultMessages } from './utils';
import type { ErrorObject } from 'ajv';
/**
 * https://github.com/eclipsesource/jsonforms-vuetify-renderers/blob/main/vue2-vuetify/src/layouts/ArrayLayoutRenderer.vue
 */
type I18nArrayLayoutKey = keyof typeof i18nDefaultMessages.arraylayout;
declare const controlRenderer: import("vue").DefineComponent<{
    schema: {
        required: true;
        type: import("vue").PropType<JsonSchema>;
    };
    uischema: {
        /**
         * https://github.com/eclipsesource/jsonforms-vuetify-renderers/blob/main/vue2-vuetify/src/layouts/ArrayLayoutRenderer.vue
         */
        required: true;
        type: import("vue").PropType<ControlElement>;
    };
    path: {
        required: true;
        type: StringConstructor;
    };
    enabled: {
        required: false;
        type: BooleanConstructor;
        default: undefined;
    };
    renderers: {
        required: boolean;
        type: import("vue").PropType<JsonFormsRendererRegistryEntry[]>;
        default: undefined;
    };
    cells: {
        required: boolean;
        type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
        default: undefined;
    };
    config: {
        required: boolean;
        type: ObjectConstructor;
        default: undefined;
    };
}, {
    currentlyExpanded: import("vue").Ref<number>;
    suggestToDelete: import("vue").Ref<number>;
    control: {
        childErrors: ErrorObject<string, Record<string, any>, unknown>[];
        uischemas: import("@jsonforms/core").JsonFormsUISchemaRegistryEntry[];
        renderers: JsonFormsRendererRegistryEntry[];
        cells: import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[];
        label: string;
        description: string;
        required: boolean;
        uischema: ControlElement;
        errors: string;
        data: any;
        rootSchema: JsonSchema;
        id: string;
        config: any;
        schema: JsonSchema;
        enabled: boolean;
        visible: boolean;
        path: string;
    };
    addItem(path: string, value: any): () => void;
    removeItems?(path: string, toDelete: number[]): () => void;
    moveUp?(path: string, toMove: number): () => void;
    moveDown?(path: string, toMove: number): () => void;
    styles: import("@jsonforms/vue-vanilla").Styles;
    appliedOptions: import("vue").ComputedRef<any>;
    childUiSchema: import("vue").ComputedRef<UISchemaElement>;
    childLabelForIndex: ((index: number) => string) & ((index: number) => string);
    computedLabel: import("vue").ComputedRef<string>;
}, unknown, {
    addDisabled(): boolean;
    dataLength(): number;
    foundUISchema(): UISchemaElement;
    arraySchema(): JsonSchema | undefined;
    hideAvatar(): boolean;
    translatedLabels(): {
        delete: string;
        add: string;
        moveUp: string;
        moveDown: string;
        dialogTitle: string;
        dialogText: string;
        dialogConfirm: string;
        dialogCancel: string;
    };
    errorsPerChild(): Record<string, any[]>;
}, {
    composePaths: (path1: string, path2: string) => string;
    createDefaultValue: (schema: JsonSchema) => {};
    addButtonClick(): void;
    moveUpClick(event: Event, toMove: number): void;
    moveDownClick(event: Event, toMove: number): void;
    removeItemsClick(toDelete: number[] | null): void;
    childErrors(index: number): ErrorObject[];
    translateLabel(labelType: I18nArrayLayoutKey, additionalContext?: Record<string, unknown> | undefined, transformMessage?: (message: string) => string): string;
    onDelete(index: number): void;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    schema: {
        required: true;
        type: import("vue").PropType<JsonSchema>;
    };
    uischema: {
        /**
         * https://github.com/eclipsesource/jsonforms-vuetify-renderers/blob/main/vue2-vuetify/src/layouts/ArrayLayoutRenderer.vue
         */
        required: true;
        type: import("vue").PropType<ControlElement>;
    };
    path: {
        required: true;
        type: StringConstructor;
    };
    enabled: {
        required: false;
        type: BooleanConstructor;
        default: undefined;
    };
    renderers: {
        required: boolean;
        type: import("vue").PropType<JsonFormsRendererRegistryEntry[]>;
        default: undefined;
    };
    cells: {
        required: boolean;
        type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
        default: undefined;
    };
    config: {
        required: boolean;
        type: ObjectConstructor;
        default: undefined;
    };
}>>, {
    config: Record<string, any>;
    renderers: JsonFormsRendererRegistryEntry[];
    cells: import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[];
    enabled: boolean;
}>;
export default controlRenderer;
export declare const entry: JsonFormsRendererRegistryEntry;
