import { ViewContainerRef } from '@angular/core';
import { FormGroup, FormArray } from '@angular/forms';
import { ComponentMappingService } from './component-mapping.service';
import { ComponentModel } from '../models/component.model';
import { NgxOverlayService } from './ngx-overlay.service';
import * as i0 from "@angular/core";
export declare class ComponentFactoryService {
    private mappingService;
    private overlayService;
    constructor(mappingService: ComponentMappingService, overlayService: NgxOverlayService);
    /**
     * Loads one or more components based on the provided configuration.
     * @param config A single ComponentModel or an array of ComponentModel objects.
     * @param container The container (ViewContainerRef) where components should be added.
     * @param form (Optional) The parent FormGroup/FormArray for form components.
     * @param validationSchema (Optional) Validation configuration used for form controls.
     */
    loadComponents(config: ComponentModel | ComponentModel[], container: ViewContainerRef, form?: FormGroup | FormArray, validationSchema?: any): void;
    /**
     * Loads a single component based on its configuration.
     * For 'formGroup' types, it recursively loads child components into the corresponding sub-form.
     * @param componentConfig The configuration for the component.
     * @param container The ViewContainerRef to create the component in.
     * @param form (Optional) The parent FormGroup/FormArray.
     * @param validationSchema (Optional) Validation configuration for form controls.
     */
    private loadSingleComponent;
    /**
     * Recursively searches a validation schema for a specific key.
     * @param schema The validation schema object.
     * @param key The key to search for.
     * @returns The matching schema section or null if not found.
     */
    private findValidationSchema;
    static ɵfac: i0.ɵɵFactoryDeclaration<ComponentFactoryService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ComponentFactoryService>;
}
