import { ControlElement, UISchemaElement, JsonSchema, JsonFormsRendererRegistryEntry, JsonFormsCellRendererRegistryEntry, JsonFormsUISchemaRegistryEntry, DispatchPropsOfControl } from '@jsonforms/core';
import { DefineComponent, PropType, ComputedRef, Ref, ComponentOptionsMixin, PublicProps, ExtractPropTypes } from 'vue';
import { Styles } from '..';
import { NestedInfo } from '../util';

declare const controlRenderer: DefineComponent<{
    schema: {
        required: true;
        type: PropType<JsonSchema>;
    };
    uischema: {
        required: true;
        type: PropType<ControlElement>;
    };
    path: {
        required: true;
        type: StringConstructor;
    };
    enabled: {
        required: false;
        type: BooleanConstructor;
        default: undefined;
    };
    renderers: {
        required: boolean;
        type: PropType< JsonFormsRendererRegistryEntry[]>;
        default: undefined;
    };
    cells: {
        required: boolean;
        type: PropType< JsonFormsCellRendererRegistryEntry[]>;
        default: undefined;
    };
    config: {
        required: boolean;
        type: ObjectConstructor;
        default: undefined;
    };
}, {
    input: {
        control: ComputedRef<{
            uischema: ControlElement;
            schema: NonNullable< JsonSchema>;
            path: string;
            enabled: boolean;
            renderers: JsonFormsRendererRegistryEntry[];
            cells: JsonFormsCellRendererRegistryEntry[];
            config: any;
            uischemas: JsonFormsUISchemaRegistryEntry[];
            label: string;
            description: string;
            required: NonNullable<boolean | undefined>;
            i18nKeyPrefix: string;
            errors: string;
            data: any;
            rootSchema: NonNullable< JsonSchema>;
            id: string;
            visible: boolean;
        }>;
    } & DispatchPropsOfControl & {
        control: ComputedRef<{
            uischema: ControlElement;
            path: string;
            config: any;
            label: string;
            description: string;
            required: boolean;
            errors: string;
            id: string;
            visible: boolean;
        } & {
            errors: string;
        }>;
        styles: Styles;
        isFocused: Ref<boolean>;
        appliedOptions: ComputedRef<any>;
        controlWrapper: ComputedRef<{
            id: string;
            description: string;
            errors: string;
            label: string;
            visible: boolean;
            required: boolean;
        }>;
        onChange: (value: any) => void;
        vuetifyProps: (path: string) => any;
        persistentHint: () => boolean;
        computedLabel: ComputedRef<string>;
        touched: Ref<boolean>;
        handleBlur: () => void;
        handleFocus: () => void;
        rawErrors: ComputedRef<string>;
    };
    nested: NestedInfo;
    control: ComputedRef<{
        uischema: ControlElement;
        schema: NonNullable< JsonSchema>;
        path: string;
        enabled: boolean;
        renderers: JsonFormsRendererRegistryEntry[];
        cells: JsonFormsCellRendererRegistryEntry[];
        config: any;
        uischemas: JsonFormsUISchemaRegistryEntry[];
        label: string;
        description: string;
        required: NonNullable<boolean | undefined>;
        i18nKeyPrefix: string;
        errors: string;
        data: any;
        rootSchema: NonNullable< JsonSchema>;
        id: string;
        visible: boolean;
    }> & ComputedRef<{
        uischema: ControlElement;
        path: string;
        config: any;
        label: string;
        description: string;
        required: boolean;
        errors: string;
        id: string;
        visible: boolean;
    } & {
        errors: string;
    }>;
    handleChange(path: string, value: any): void;
    styles: Styles;
    isFocused: Ref<boolean>;
    appliedOptions: ComputedRef<any>;
    controlWrapper: ComputedRef<{
        id: string;
        description: string;
        errors: string;
        label: string;
        visible: boolean;
        required: boolean;
    }>;
    onChange: (value: any) => void;
    vuetifyProps: (path: string) => any;
    persistentHint: () => boolean;
    computedLabel: ComputedRef<string>;
    touched: Ref<boolean>;
    handleBlur: () => void;
    handleFocus: () => void;
    rawErrors: ComputedRef<string>;
}, unknown, {
    hasAdditionalProperties(): boolean;
    showAdditionalProperties(): boolean;
    detailUiSchema(): UISchemaElement;
}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
    schema: {
        required: true;
        type: PropType<JsonSchema>;
    };
    uischema: {
        required: true;
        type: PropType<ControlElement>;
    };
    path: {
        required: true;
        type: StringConstructor;
    };
    enabled: {
        required: false;
        type: BooleanConstructor;
        default: undefined;
    };
    renderers: {
        required: boolean;
        type: PropType< JsonFormsRendererRegistryEntry[]>;
        default: undefined;
    };
    cells: {
        required: boolean;
        type: PropType< JsonFormsCellRendererRegistryEntry[]>;
        default: undefined;
    };
    config: {
        required: boolean;
        type: ObjectConstructor;
        default: undefined;
    };
}>>, {
    enabled: boolean;
    renderers: JsonFormsRendererRegistryEntry[];
    cells: JsonFormsCellRendererRegistryEntry[];
    config: Record<string, any>;
}, {}>;
export default controlRenderer;
