import { Type } from "@angular/core"; import { Maybe } from "@fretve/global-types"; import { UnionToIntersection } from "ts-essentials"; import { AbstractDynamicControl, ControlArrayComponent, ControlFieldComponent, ControlGroupComponent, GetControlFieldReturnValue } from "../interfaces"; import { ControlArrayOverridables, ControlArraySchema, ControlFieldSchema, ControlGroupOverridables, ControlGroupSchema, ValidControlSchemaMap } from "./interfaces"; declare type NoUnion = [Key] extends [UnionToIntersection] ? Key : undefined; /** Constructs a type safe {@link DynamicControl}. */ export declare function _createControlField>(control: ControlFieldSchema, Type>): ControlFieldSchema, Type>; /** Create a function for creating type safe {@link ControlGroupSchema} for a specified TGroup. * @returns A function that creates type safe {@link ControlGroupSchema} for the specified TGroup */ export declare function _createControlGroup(): , TGroupComponent extends Maybe>> = undefined>(group: ControlGroupSchema>) => ControlGroupSchema>; /** Constructs a type safe {@link ControlArraySchema}. */ export declare function _createControlArray(): , TArrayComponent extends Type> | undefined = undefined>(control: ControlArraySchema>) => ControlArraySchema>; /** Check if the given object has control group overridables * @param control - The control object that should be checked. * @return Returns true if the object has control group overridables, else false. */ export declare function _isControlGroupOverridables(overridables: any): overridables is ControlGroupOverridables; /** Check if the given object has control group overridables * @param control - The control object that should be checked. * @return Returns true if the object has control group overridables, else false. */ export declare function _isControlArrayOverridables(overridables: any): overridables is ControlArrayOverridables; /** Check if the given object is a valid control group {@link ControlGroupSchema}. * @param control - The control object that should be checked. * @return Returns true if the object is a valid control group, else false. */ export declare function _isControlGroupSchema(control: any): control is ControlGroupSchema; /** Check if the given object is a valid control array {@link ControlArraySchema}. * @param control - The control object that should be checked. * @return Returns true if the object is a valid control group, else false. */ export declare function _isControlArraySchema(control: any): control is ControlArraySchema; export {};