import { FormGroup } from '@angular/forms';
import { DynamicStructure } from './configurations/structure/structure';
import { DynamicType } from './form-field/configurations/fields/field';
import * as i0 from "@angular/core";
/**
 * @description Componente de formulário dinâmico que renderiza campos configuráveis
 * a partir de uma estrutura de dados (`DynamicStructure[]` ou `DynamicType[]`).
 * Suporta múltiplos tipos de campo (texto, número, select, data, arquivo, etc.)
 * e integra-se a um `FormGroup` Angular existente.
 *
 * @example
 * ```html
 * <s-dynamic-form
 *   [form]="meuFormGroup"
 *   [configs]="estruturaDoCampos" />
 * ```
 *
 * @category Inputs
 */
export declare class DynamicFormComponent {
    /** @description Identificador único do formulário dinâmico no DOM. */
    id: import("@angular/core").InputSignal<string | undefined>;
    /** @description Lista de estruturas de campos dinâmicos a serem renderizados. @default [] */
    configs: import("@angular/core").InputSignal<DynamicStructure[]>;
    /**
     * @deprecated Use o input `configs` ao invés deste. Será removido em versões futuras.
     * @description Lista legada de campos dinâmicos no formato `DynamicType[]`.
     */
    fields: import("@angular/core").InputSignal<DynamicType[] | undefined>;
    private dynamicTypeToStructure;
    conf: import("@angular/core").Signal<DynamicStructure[] | undefined>;
    /** @description `FormGroup` Angular ao qual os campos dinâmicos serão vinculados. Campo obrigatório. */
    form: import("@angular/core").InputSignal<FormGroup<any>>;
    /** @description Mapa de mensagens de erro customizadas por nome de validador, aplicadas globalmente aos campos do formulário. @default {} */
    errorMessages: import("@angular/core").InputSignal<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "s-dynamic-form", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "configs": { "alias": "configs"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": true; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
 * Transforma uma lista plana de `DynamicType` em uma estrutura aninhada de campos.
 * * Esta função encapsula os tipos dinâmicos dentro de um objeto de linha ('row'),
 * permitindo que eles sejam consumidos por componentes que esperam a interface `DynamicStructure`.
 *
 * @param {DynamicType[]} dynamicTypes - Array de campos dinâmicos a serem processados.
 * @returns {DynamicStructure} Retorna um array contendo um objeto de estrutura com a propriedade 'fields'.
 * * @example
 * const structure = formatToDynamicStructure(meusCampos);
 * // Retorno esperado: [{ type: 'row', fields: [...] }]
 */
export declare const dynamicTypeToDynamicStructure: (dynamicTypes: DynamicType[]) => DynamicStructure[];
