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

declare const controlRenderer: DefineComponent<{
    schema: JsonSchema;
    uischema: ControlElement;
    path: string;
    enabled?: boolean | undefined;
    readonly?: boolean | undefined;
    renderers?: JsonFormsRendererRegistryEntry[] | undefined;
    cells?: JsonFormsCellRendererRegistryEntry[] | undefined;
    config?: any;
}, {
    control: ComputedRef<{
        uischema: ControlElement;
        schema: NonNullable< JsonSchema>;
        path: string;
        enabled: boolean;
        readonly: NonNullable<boolean | undefined>;
        renderers: JsonFormsRendererRegistryEntry[];
        cells: JsonFormsCellRendererRegistryEntry[] & {
            tester: RankedTester;
            cell: any;
        }[];
        config: any;
        rootSchema: NonNullable< JsonSchema>;
        id: string;
        indexOfFittingSchema: number;
        uischemas: JsonFormsUISchemaRegistryEntry[];
        data: any;
        label: string;
        description: string;
        required: NonNullable<boolean | undefined>;
        i18nKeyPrefix: string;
        errors: string;
        visible: boolean;
    }>;
} & DispatchPropsOfControl & {
    control: ComputedRef<{
        schema: JsonSchema;
        uischema: ControlElement;
        path: string;
        config: any;
        label: string;
        description: string;
        required: boolean;
        errors: string;
        id: string;
        visible: boolean;
        enabled: boolean;
        readonly: boolean;
    } & {
        errors: string;
    }>;
    styles: Styles;
    isFocused: Ref<boolean, 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>;
    clearable: ComputedRef<any>;
    touched: Ref<boolean, boolean>;
    handleBlur: () => void;
    handleFocus: () => void;
    rawErrors: ComputedRef<string>;
}, {}, {
    delegateUISchema(): UISchemaElement;
    allOfRenderInfos(): CombinatorSubSchemaRenderInfo[];
}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{
    schema: JsonSchema;
    uischema: ControlElement;
    path: string;
    enabled?: boolean | undefined;
    readonly?: boolean | undefined;
    renderers?: JsonFormsRendererRegistryEntry[] | undefined;
    cells?: JsonFormsCellRendererRegistryEntry[] | undefined;
    config?: any;
}> & Readonly<{}>, {
    enabled: boolean;
    readonly: boolean;
    renderers: JsonFormsRendererRegistryEntry[];
    cells: JsonFormsCellRendererRegistryEntry[];
    config: Record<string, any>;
}, {}, {
    DispatchRenderer: DefineComponent<ExtractPropTypes<{
        schema: {
            required: true;
            type: PropType<JsonSchema>;
        };
        uischema: {
            required: true;
            type: PropType<UISchemaElement>;
        };
        path: {
            required: true;
            type: StringConstructor;
        };
        enabled: {
            required: false;
            type: BooleanConstructor;
            default: undefined;
        };
        readonly: {
            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;
        };
    }>, {
        renderer: ComputedRef<{
            config: any;
            uischema: NonNullable< UISchemaElement | undefined>;
            schema: NonNullable< JsonSchema | undefined>;
            enabled: NonNullable<boolean | undefined>;
            readonly: NonNullable<boolean | undefined>;
            visible: NonNullable<boolean | undefined>;
            path: string;
            renderers: JsonFormsRendererRegistryEntry[];
            cells: JsonFormsCellRendererRegistryEntry[];
            uischemas: JsonFormsUISchemaRegistryEntry[];
        }>;
        rootSchema: ComputedRef<NonNullable< JsonSchema>>;
    }, {}, {
        determinedRenderer(): any;
    }, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
        schema: {
            required: true;
            type: PropType<JsonSchema>;
        };
        uischema: {
            required: true;
            type: PropType<UISchemaElement>;
        };
        path: {
            required: true;
            type: StringConstructor;
        };
        enabled: {
            required: false;
            type: BooleanConstructor;
            default: undefined;
        };
        readonly: {
            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;
        };
    }>> & Readonly<{}>, {
        enabled: boolean;
        readonly: boolean;
        renderers: JsonFormsRendererRegistryEntry[];
        cells: JsonFormsCellRendererRegistryEntry[];
        config: Record<string, any>;
    }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
    CombinatorProperties: DefineComponent<{
        schema: JsonSchema;
        combinatorKeyword: "oneOf" | "anyOf" | "allOf";
        path: string;
        rootSchema: JsonSchema;
    }, {
        otherProps: JsonSchema;
        foundUISchema: UISchemaElement;
        isLayoutWithElements: boolean;
    }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{
        schema: JsonSchema;
        combinatorKeyword: "oneOf" | "anyOf" | "allOf";
        path: string;
        rootSchema: JsonSchema;
    }> & Readonly<{}>, {}, {}, {
        DispatchRenderer: DefineComponent<ExtractPropTypes<{
            schema: {
                required: true;
                type: PropType<JsonSchema>;
            };
            uischema: {
                required: true;
                type: PropType<UISchemaElement>;
            };
            path: {
                required: true;
                type: StringConstructor;
            };
            enabled: {
                required: false;
                type: BooleanConstructor;
                default: undefined;
            };
            readonly: {
                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;
            };
        }>, {
            renderer: ComputedRef<{
                config: any;
                uischema: NonNullable< UISchemaElement | undefined>;
                schema: NonNullable< JsonSchema | undefined>;
                enabled: NonNullable<boolean | undefined>;
                readonly: NonNullable<boolean | undefined>;
                visible: NonNullable<boolean | undefined>;
                path: string;
                renderers: JsonFormsRendererRegistryEntry[];
                cells: JsonFormsCellRendererRegistryEntry[];
                uischemas: JsonFormsUISchemaRegistryEntry[];
            }>;
            rootSchema: ComputedRef<NonNullable< JsonSchema>>;
        }, {}, {
            determinedRenderer(): any;
        }, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
            schema: {
                required: true;
                type: PropType<JsonSchema>;
            };
            uischema: {
                required: true;
                type: PropType<UISchemaElement>;
            };
            path: {
                required: true;
                type: StringConstructor;
            };
            enabled: {
                required: false;
                type: BooleanConstructor;
                default: undefined;
            };
            readonly: {
                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;
            };
        }>> & Readonly<{}>, {
            enabled: boolean;
            readonly: boolean;
            renderers: JsonFormsRendererRegistryEntry[];
            cells: JsonFormsCellRendererRegistryEntry[];
            config: Record<string, any>;
        }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
    }, {}, string, ComponentProvideOptions, true, {}, any>;
}, {}, string, ComponentProvideOptions, true, {}, any>;
export default controlRenderer;
