import type { JsonSchema } from "@jsonforms/core";
import type { ControlProps } from "@jsonforms/vue/src/jsonFormsCompositions";
import type { Ref } from "vue";
/**
 * @see https://github.com/kchobantonov/camunda-jsonforms-plugin/blob/master/plugin-ui/packages/common/src/renderers/FileRenderer.vue
 * @see https://json-schema.org/understanding-json-schema/reference/non_json_data.html
 */
export declare const fileRenderer: {
    components: {
        ControlWrapper: import("vue").DefineComponent<{
            id: {
                required: true;
                type: StringConstructor;
            };
            description: {
                required: false;
                type: StringConstructor;
                default: undefined;
            };
            errors: {
                required: false;
                type: StringConstructor;
                default: undefined;
            };
            label: {
                required: false;
                type: StringConstructor;
                default: undefined;
            };
            appliedOptions: {
                required: false;
                type: import("vue").PropType<import("@jsonforms/vue-vanilla").Options>;
                default: undefined;
            };
            visible: {
                required: false;
                type: BooleanConstructor;
                default: boolean;
            };
            required: {
                required: false;
                type: BooleanConstructor;
                default: boolean;
            };
            isFocused: {
                required: false;
                type: BooleanConstructor;
                default: boolean;
            };
            styles: {
                required: true;
                type: import("vue").PropType<import("@jsonforms/vue-vanilla").Styles>;
            };
        }, unknown, unknown, {
            showDescription(): boolean;
            computedLabel(): string;
        }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
            id?: unknown;
            description?: unknown;
            errors?: unknown;
            label?: unknown;
            appliedOptions?: unknown;
            visible?: unknown;
            required?: unknown;
            isFocused?: unknown;
            styles?: unknown;
        } & {
            id: string;
            visible: boolean;
            required: boolean;
            isFocused: boolean;
            styles: import("@jsonforms/vue-vanilla").Styles;
        } & {
            description?: string;
            errors?: string;
            label?: string;
            appliedOptions?: import("@jsonforms/vue-vanilla").Options;
        }>, {
            description: string;
            errors: string;
            label: string;
            appliedOptions: import("@jsonforms/vue-vanilla").Options;
            visible: boolean;
            required: boolean;
            isFocused: boolean;
        }>;
    };
    props: {
        schema: {
            required: true;
            type: import("vue").PropType<JsonSchema>;
        };
        uischema: {
            required: true;
            type: import("vue").PropType<ControlProps>;
        };
        path: {
            required: true;
            type: StringConstructor;
        };
        enabled: {
            required: false;
            type: BooleanConstructor;
            default: undefined;
        };
        renderers: {
            required: boolean;
            type: import("vue").PropType<import("@jsonforms/core").JsonFormsRendererRegistryEntry[]>;
            default: undefined;
        };
        cells: {
            required: boolean;
            type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
            default: undefined;
        };
        config: {
            required: boolean;
            type: ObjectConstructor;
            default: undefined;
        };
    };
    setup(props: ControlProps): {
        processing: Ref<boolean>;
        currentFile: Ref<File>;
        currentFileReader: FileReader;
        currentFileValidationErrors: Ref<string>;
        accept: import("vue").ComputedRef<string>;
        selectFile: (event: Event) => Promise<void>;
        progress: Ref<number>;
        control: {
            cells: {
                tester: import("@jsonforms/core").RankedTester;
                cell: any;
            }[];
            label: string;
            description: string;
            required: boolean;
            uischema: import("@jsonforms/core").ControlElement;
            errors: string;
            data: any;
            rootSchema: JsonSchema;
            id: string;
            config: any;
            schema: JsonSchema;
            enabled: boolean;
            visible: boolean;
            path: string;
            renderers: import("@jsonforms/core").JsonFormsRendererRegistryEntry[];
        };
        handleChange(path: string, value: any): void;
        styles: import("@jsonforms/vue-vanilla/src/styles/styles.js").Styles;
        isFocused: Ref<boolean>;
        appliedOptions: import("vue").ComputedRef<any>;
        controlWrapper: import("vue").ComputedRef<{
            id: any;
            description: any;
            errors: any;
            label: any;
            visible: any;
            required: any;
        }>;
        onChange: (event: Event) => void;
    };
};
export default fileRenderer;
export declare const fileEntry: {
    renderer: {
        components: {
            ControlWrapper: import("vue").DefineComponent<{
                id: {
                    required: true;
                    type: StringConstructor;
                };
                description: {
                    required: false;
                    type: StringConstructor;
                    default: undefined;
                };
                errors: {
                    required: false;
                    type: StringConstructor;
                    default: undefined;
                };
                label: {
                    required: false;
                    type: StringConstructor;
                    default: undefined;
                };
                appliedOptions: {
                    required: false;
                    type: import("vue").PropType<import("@jsonforms/vue-vanilla").Options>;
                    default: undefined;
                };
                visible: {
                    required: false;
                    type: BooleanConstructor;
                    default: boolean;
                };
                required: {
                    required: false;
                    type: BooleanConstructor;
                    default: boolean;
                };
                isFocused: {
                    required: false;
                    type: BooleanConstructor;
                    default: boolean;
                };
                styles: {
                    required: true;
                    type: import("vue").PropType<import("@jsonforms/vue-vanilla").Styles>;
                };
            }, unknown, unknown, {
                showDescription(): boolean;
                computedLabel(): string;
            }, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
                id?: unknown;
                description?: unknown;
                errors?: unknown;
                label?: unknown;
                appliedOptions?: unknown;
                visible?: unknown;
                required?: unknown;
                isFocused?: unknown;
                styles?: unknown;
            } & {
                id: string;
                visible: boolean;
                required: boolean;
                isFocused: boolean;
                styles: import("@jsonforms/vue-vanilla").Styles;
            } & {
                description?: string;
                errors?: string;
                label?: string;
                appliedOptions?: import("@jsonforms/vue-vanilla").Options;
            }>, {
                description: string;
                errors: string;
                label: string;
                appliedOptions: import("@jsonforms/vue-vanilla").Options;
                visible: boolean;
                required: boolean;
                isFocused: boolean;
            }>;
        };
        props: {
            schema: {
                required: true;
                type: import("vue").PropType<JsonSchema>;
            };
            uischema: {
                required: true;
                type: import("vue").PropType<ControlProps>;
            };
            path: {
                required: true;
                type: StringConstructor;
            };
            enabled: {
                required: false;
                type: BooleanConstructor;
                default: undefined;
            };
            renderers: {
                required: boolean;
                type: import("vue").PropType<import("@jsonforms/core").JsonFormsRendererRegistryEntry[]>;
                default: undefined;
            };
            cells: {
                required: boolean;
                type: import("vue").PropType<import("@jsonforms/core").JsonFormsCellRendererRegistryEntry[]>;
                default: undefined;
            };
            config: {
                required: boolean;
                type: ObjectConstructor;
                default: undefined;
            };
        };
        setup(props: ControlProps): {
            processing: Ref<boolean>;
            currentFile: Ref<File>;
            currentFileReader: FileReader;
            currentFileValidationErrors: Ref<string>;
            accept: import("vue").ComputedRef<string>;
            selectFile: (event: Event) => Promise<void>;
            progress: Ref<number>;
            control: {
                cells: {
                    tester: import("@jsonforms/core").RankedTester;
                    cell: any;
                }[];
                label: string;
                description: string;
                required: boolean;
                uischema: import("@jsonforms/core").ControlElement;
                errors: string;
                data: any;
                rootSchema: JsonSchema;
                id: string;
                config: any;
                schema: JsonSchema;
                enabled: boolean;
                visible: boolean;
                path: string;
                renderers: import("@jsonforms/core").JsonFormsRendererRegistryEntry[];
            };
            handleChange(path: string, value: any): void;
            styles: import("@jsonforms/vue-vanilla/src/styles/styles.js").Styles;
            isFocused: Ref<boolean>;
            appliedOptions: import("vue").ComputedRef<any>;
            controlWrapper: import("vue").ComputedRef<{
                id: any;
                description: any;
                errors: any;
                label: any;
                visible: any;
                required: any;
            }>;
            onChange: (event: Event) => void;
        };
    };
    tester: (uischema: import("@jsonforms/core").UISchemaElement, schema: JsonSchema, context: import("@jsonforms/core").TesterContext) => number;
};
