import { FieldTypes, UxDynFormModel, UxDynFormModelArray } from '../model/ux-dyn-core.model';
import { JsonSchema, JsonSchemaObject, SchemaArray } from '../model/ux-dyn-json-schema.model';
import { RawArrayContainerComponentInputs } from '../../components/array-field/raw-array-container/raw-array-container.component.inputs';
import { CheckboxComponentInputs } from '../../components/control-field/checkbox/checkbox.component.inputs';
import { NumberInputComponentInputs } from '../../components/control-field/number-input/number-input.component.inputs';
import { TextInputComponentInputs } from '../../components/control-field/text-input/text-input.component.inputs';
import { FieldsetContainerComponentInputs } from '../../components/group-field/fieldset-container/fieldset-container.component.inputs';
import { MultipleSubTypeContainerComponentInputs } from '../../components/container-field/multiple-sub-type-container/multiple-sub-type-container.component.inputs';
import { AnyTypeInputComponentInputs } from '../../components/control-field/any-type-input/any-type-input.component.inputs';
import { RadioButtonComponentInputs } from '../../components/control-field/radio-button/radio-button.component.inputs';
import { RecursiveTypeContainerComponentInputs } from '../../components/container-field/recursive-type-container/recursive-type-container.component.inputs';
import { RawTupleContainerComponentInputs } from '../../components/array-field/raw-tuple-container/raw-tuple-container.component.inputs';
import * as i0 from "@angular/core";
export declare class DynJsonSchemaFormGeneratorService {
    simpleTypes: string[];
    baseConfig: {
        array: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => RawArrayContainerComponentInputs;
        };
        tuple: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => RawTupleContainerComponentInputs;
        };
        boolean: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => CheckboxComponentInputs;
        };
        integer: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => NumberInputComponentInputs;
        };
        string: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => TextInputComponentInputs;
        };
        null: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => TextInputComponentInputs;
        };
        number: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => NumberInputComponentInputs;
        };
        object: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => FieldsetContainerComponentInputs;
        };
        any: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => AnyTypeInputComponentInputs;
        };
        enum: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => RadioButtonComponentInputs;
        };
        undefined: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => TextInputComponentInputs;
        };
        multi_type: {
            id: string;
            type: FieldTypes;
            inputFn: (schemaArray: SchemaArray, key: string) => MultipleSubTypeContainerComponentInputs;
        };
        recursive_object: {
            id: string;
            type: FieldTypes;
            inputFn: (schema: JsonSchema) => RecursiveTypeContainerComponentInputs;
        };
    };
    constants: {
        defPath: string;
        refStr: string;
        allOfStr: string;
        anyOfStr: string;
        oneOfStr: string;
    };
    private jsonSchemaObject;
    constructor();
    createDynFormMetaData(jsonSchemaObject: JsonSchemaObject, entry: string): UxDynFormModelArray;
    getSubDynFormMetaDataBySchema(jsonSchemaObject: JsonSchemaObject, schema: JsonSchema, key: string): UxDynFormModel;
    private getMetaDataByGeneratorFn;
    private getRefName;
    private getSubSchema;
    private createControl;
    private createRadioOptions;
    private createArray;
    private createGroup;
    private checkIfRecursive;
    private getObjectMetaDataArray;
    private createMultiTypeContainer;
    private getTypeString;
    static ɵfac: i0.ɵɵFactoryDef<DynJsonSchemaFormGeneratorService, never>;
    static ɵprov: i0.ɵɵInjectableDef<DynJsonSchemaFormGeneratorService>;
}
