import * as _ngx_formly_core from '@ngx-formly/core';
import { FormlyForm, FormlyFormOptions, FormlyFieldConfig, FieldType, FieldTypeConfig, FieldArrayType, FieldWrapper, ConfigOption } from '@ngx-formly/core';
import * as i0 from '@angular/core';
import { OnInit, AfterViewInit, ModuleWithProviders } from '@angular/core';
import * as i5 from '@angular/forms';
import { AbstractControl, FormGroup } from '@angular/forms';
import { JSONSchema7 } from 'json-schema';
import * as i2 from '@angular/common';
import * as i3 from '@ngx-formly/bootstrap';
import * as i23 from '@siemens/element-ng/form';

declare class SiFormlyComponent<TControl extends {
    [K in keyof TControl]: AbstractControl;
}> implements OnInit {
    /**
     * Formly main container to provide modelChange subscriptions.
     */
    readonly formlyForm: i0.Signal<FormlyForm | undefined>;
    readonly form: i0.ModelSignal<FormGroup<TControl> | undefined>;
    /**
     * Mapping of field name and its value.
     *
     * @defaultValue
     * ```
     * {}
     * ```
     */
    readonly model: i0.ModelSignal<{}>;
    /**
     * Define FormlyFormOptions.
     *
     * @defaultValue
     * ```
     * {}
     * ```
     */
    readonly options: i0.InputSignal<FormlyFormOptions>;
    /**
     * JSONSchema7 can be used instead of FormlyFieldConfig array for defining form fields.
     * */
    readonly schema: i0.ModelSignal<JSONSchema7 | undefined>;
    /**
     * Define all form fields with FormlyFieldConfig array.
     *
     * @defaultValue []
     */
    readonly fields: i0.InputSignal<FormlyFieldConfig<_ngx_formly_core.FormlyFieldProps & {
        [additionalProperties: string]: any;
    }>[]>;
    readonly fieldsChange: i0.OutputEmitterRef<FormlyFieldConfig<_ngx_formly_core.FormlyFieldProps & {
        [additionalProperties: string]: any;
    }>[]>;
    /** Define width for field labels in pixel */
    readonly labelWidth: i0.InputSignal<number | undefined>;
    protected readonly fieldConfig: i0.Signal<FormlyFieldConfig<_ngx_formly_core.FormlyFieldProps & {
        [additionalProperties: string]: any;
    }>[]>;
    protected ownForm: boolean;
    private readonly formlyJsonschema;
    ngOnInit(): void;
    private applyLabelWidth;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyComponent<any>, "si-formly", never, { "form": { "alias": "form"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "required": false; "isSignal": true; }; }, { "form": "formChange"; "model": "modelChange"; "schema": "schemaChange"; "fieldsChange": "fieldsChange"; }, never, never, false, never>;
}

declare class SiFormlyIpInputComponent extends FieldType<FieldTypeConfig> {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyIpInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyIpInputComponent, "si-formly-ip-address", never, {}, {}, never, never, true, never>;
}

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

declare class SiFormlyAccordionComponent extends FieldType implements AfterViewInit {
    protected panelToggle(toggle: boolean, fieldGroup: FormlyFieldConfig): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyAccordionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyAccordionComponent, "si-formly-accordion", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyArrayComponent extends FieldArrayType {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyArrayComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyArrayComponent, "si-formly-array", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyButtonComponent extends FieldType {
    protected click(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyButtonComponent, "si-formly-button", never, {}, {}, never, never, true, never>;
}

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

declare class SiFormlyDateTimeComponent extends FieldType<FieldTypeConfig> implements OnInit {
    ngOnInit(): void;
    private convertValidStringToDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyDateTimeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyDateTimeComponent, "si-formly-datetime", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyEmailComponent extends FieldType<FieldTypeConfig> {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyEmailComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyEmailComponent, "si-formly-email", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyHorizontalWrapperComponent extends FieldWrapper {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyHorizontalWrapperComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyHorizontalWrapperComponent, "si-formly-horizontal-wrapper", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyIconWrapperComponent extends FieldWrapper {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyIconWrapperComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyIconWrapperComponent, "si-formly-icon-wrapper", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyObjectComponent extends FieldType {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyObjectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyObjectComponent, "si-formly-object", never, {}, {}, never, never, true, never>;
}

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

interface GridRow {
    columns: GridColumnConfig[];
    classes: string[];
}
interface GridColumnConfig {
    fields?: FormlyFieldConfig[];
    classes: string[];
}

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

declare class SiFormlyObjectGridComponent extends FieldType implements OnInit {
    protected rows: GridRow[];
    /**
     * Template option to suppress displaying error messages that relate
     * to the formControl of this grid (see formControl.errors).
     */
    private suppressFormErrorDisplay;
    protected get containerClass(): string | string[];
    ngOnInit(): void;
    protected get displayErrorMessages(): boolean;
    private setRows;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyObjectGridComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyObjectGridComponent, "si-formly-object-grid", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyObjectPlainComponent extends FieldType {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyObjectPlainComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyObjectPlainComponent, "si-formly-object-plain", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyObjectTabsetComponent extends FieldType {
    protected tabIndexChange(isActive: boolean, selectedTab: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyObjectTabsetComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyObjectTabsetComponent, "si-formly-object-tabset", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyPasswordComponent extends FieldType<FieldTypeConfig> {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyPasswordComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyPasswordComponent, "si-formly-password", never, {}, {}, never, never, true, never>;
}

declare class SiFormlySelectComponent extends FieldType<FieldTypeConfig> {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlySelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlySelectComponent, "si-formly-select", never, {}, {}, never, never, true, never>;
}

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

declare class SiFormlyTextareaComponent extends FieldType<FieldTypeConfig> implements OnInit, AfterViewInit {
    private readonly textArea;
    protected contentGrowTextarea(): string;
    protected resizeConfiguration(): string;
    protected maxHeightConfiguration(): string;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private assignValueToParent;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyTextareaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyTextareaComponent, "si-formly-textarea", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyTextDisplayComponent extends FieldType<FieldTypeConfig> {
    protected get value(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyTextDisplayComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyTextDisplayComponent, "si-formly-text-display", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyWrapperComponent extends FieldWrapper {
    protected get label(): string;
    protected get labelWidth(): number | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyWrapperComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyWrapperComponent, "si-formly-wrapper", never, {}, {}, never, never, true, never>;
}

declare class SiFormlyModule {
    private config;
    private configs;
    static forRoot(formlyConfig?: ConfigOption): ModuleWithProviders<SiFormlyModule>;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SiFormlyModule, [typeof SiFormlyComponent], [typeof i2.CommonModule, typeof i3.FormlyBootstrapModule, typeof _ngx_formly_core.FormlyModule, typeof i5.ReactiveFormsModule, typeof SiFormlyIpInputComponent, typeof SiFormlyAccordionComponent, typeof SiFormlyArrayComponent, typeof SiFormlyButtonComponent, typeof SiFormlyDateTimeComponent, typeof SiFormlyEmailComponent, typeof SiFormlyHorizontalWrapperComponent, typeof SiFormlyIconWrapperComponent, typeof SiFormlyObjectComponent, typeof SiFormlyObjectGridComponent, typeof SiFormlyObjectPlainComponent, typeof SiFormlyObjectTabsetComponent, typeof SiFormlyPasswordComponent, typeof SiFormlySelectComponent, typeof SiFormlyTextareaComponent, typeof SiFormlyTextDisplayComponent, typeof SiFormlyWrapperComponent, typeof i23.SiFormModule], [typeof SiFormlyComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SiFormlyModule>;
}

export { SiFormlyComponent, SiFormlyModule };
